sonamu 0.11.16 → 0.13.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 (322) hide show
  1. package/dist/_virtual/_rolldown/runtime.js +1 -2
  2. package/dist/ai/agents/agent.js +2 -3
  3. package/dist/ai/agents/index.js +1 -2
  4. package/dist/ai/index.js +1 -2
  5. package/dist/ai/providers/rtzr/api.js +1 -2
  6. package/dist/ai/providers/rtzr/error.js +2 -3
  7. package/dist/ai/providers/rtzr/model.js +1 -2
  8. package/dist/ai/providers/rtzr/options.js +1 -2
  9. package/dist/ai/providers/rtzr/provider.js +1 -2
  10. package/dist/ai/providers/rtzr/utils.js +1 -2
  11. package/dist/api/base-frame.js +4 -4
  12. package/dist/api/caster.d.ts +1 -1
  13. package/dist/api/caster.d.ts.map +1 -1
  14. package/dist/api/caster.js +9 -9
  15. package/dist/api/code-converters.js +6 -5
  16. package/dist/api/config.d.ts +1 -1
  17. package/dist/api/config.d.ts.map +1 -1
  18. package/dist/api/config.js +2 -3
  19. package/dist/api/context.d.ts +2 -3
  20. package/dist/api/context.d.ts.map +1 -1
  21. package/dist/api/context.js +2 -3
  22. package/dist/api/decorators.js +2 -3
  23. package/dist/api/http-validator.js +2 -3
  24. package/dist/api/index.js +8 -3
  25. package/dist/api/secret.js +1 -2
  26. package/dist/api/sonamu.d.ts +3 -5
  27. package/dist/api/sonamu.d.ts.map +1 -1
  28. package/dist/api/sonamu.js +30 -24
  29. package/dist/api/validator.js +1 -2
  30. package/dist/api/websocket-helpers.js +2 -3
  31. package/dist/auth/audit-log/builders.js +1 -2
  32. package/dist/auth/audit-log/client-ip.js +2 -3
  33. package/dist/auth/audit-log/events.js +1 -2
  34. package/dist/auth/audit-log/plugin.d.ts.map +1 -1
  35. package/dist/auth/audit-log/plugin.js +2 -3
  36. package/dist/auth/audit-log-ingestor.js +2 -3
  37. package/dist/auth/auth-generator.js +2 -3
  38. package/dist/auth/better-auth-entities.js +1 -2
  39. package/dist/auth/better-auth-request.js +2 -3
  40. package/dist/auth/index.js +2 -3
  41. package/dist/auth/knex-adapter.js +2 -3
  42. package/dist/auth/plugins/entity-definitions/admin.js +1 -2
  43. package/dist/auth/plugins/entity-definitions/anonymous.js +1 -2
  44. package/dist/auth/plugins/entity-definitions/api-key.js +1 -2
  45. package/dist/auth/plugins/entity-definitions/audit-log.js +1 -2
  46. package/dist/auth/plugins/entity-definitions/index.js +1 -2
  47. package/dist/auth/plugins/entity-definitions/jwt.js +1 -2
  48. package/dist/auth/plugins/entity-definitions/organization.js +1 -2
  49. package/dist/auth/plugins/entity-definitions/passkey.js +1 -2
  50. package/dist/auth/plugins/entity-definitions/phone-number.js +1 -2
  51. package/dist/auth/plugins/entity-definitions/sso.js +1 -2
  52. package/dist/auth/plugins/entity-definitions/two-factor.js +1 -2
  53. package/dist/auth/plugins/entity-definitions/username.js +1 -2
  54. package/dist/auth/plugins/wrappers/admin.d.ts +33 -32
  55. package/dist/auth/plugins/wrappers/admin.d.ts.map +1 -1
  56. package/dist/auth/plugins/wrappers/admin.js +2 -3
  57. package/dist/auth/plugins/wrappers/anonymous.js +2 -3
  58. package/dist/auth/plugins/wrappers/api-key.js +2 -3
  59. package/dist/auth/plugins/wrappers/jwt.js +2 -3
  60. package/dist/auth/plugins/wrappers/organization.js +2 -3
  61. package/dist/auth/plugins/wrappers/passkey.js +2 -3
  62. package/dist/auth/plugins/wrappers/phone-number.d.ts +43 -1
  63. package/dist/auth/plugins/wrappers/phone-number.d.ts.map +1 -1
  64. package/dist/auth/plugins/wrappers/phone-number.js +2 -3
  65. package/dist/auth/plugins/wrappers/sso.d.ts +138 -187
  66. package/dist/auth/plugins/wrappers/sso.d.ts.map +1 -1
  67. package/dist/auth/plugins/wrappers/sso.js +1 -2
  68. package/dist/auth/plugins/wrappers/two-factor.d.ts +51 -10
  69. package/dist/auth/plugins/wrappers/two-factor.d.ts.map +1 -1
  70. package/dist/auth/plugins/wrappers/two-factor.js +2 -3
  71. package/dist/auth/plugins/wrappers/username.d.ts +39 -5
  72. package/dist/auth/plugins/wrappers/username.d.ts.map +1 -1
  73. package/dist/auth/plugins/wrappers/username.js +2 -3
  74. package/dist/bin/build-config.js +5 -5
  75. package/dist/bin/compiler-policy.js +2 -3
  76. package/dist/bin/fixture.js +7 -5
  77. package/dist/bin/hmr-hook-register.js +1 -2
  78. package/dist/bin/migrate-targets.js +2 -3
  79. package/dist/bin/test-command.js +2 -3
  80. package/dist/bin/ts-loader-register.js +2 -3
  81. package/dist/bin/ts-loader-registration.js +2 -3
  82. package/dist/bin/typecheck-web.js +2 -3
  83. package/dist/cache/cache-manager.js +1 -2
  84. package/dist/cache/decorator.js +2 -3
  85. package/dist/cache/drivers.js +1 -2
  86. package/dist/cache/index.js +2 -3
  87. package/dist/cache-control/cache-control.js +1 -2
  88. package/dist/code-formatting/index.js +2 -3
  89. package/dist/code-formatting/oxfmt.js +2 -3
  90. package/dist/code-formatting/oxlint.js +2 -3
  91. package/dist/compress/compress.js +1 -2
  92. package/dist/compress/index.js +2 -2
  93. package/dist/compress/types.d.ts +1 -1
  94. package/dist/compress/types.d.ts.map +1 -1
  95. package/dist/cone/cone-generator.js +2 -3
  96. package/dist/database/_batch_update.js +1 -2
  97. package/dist/database/base-model.js +4 -4
  98. package/dist/database/db.js +4 -4
  99. package/dist/database/knex.js +2 -3
  100. package/dist/database/puri-wrapper.js +2 -3
  101. package/dist/database/puri.js +23 -22
  102. package/dist/database/puri.types.js +1 -2
  103. package/dist/database/transaction-context.js +1 -2
  104. package/dist/database/upsert-builder.js +2 -3
  105. package/dist/dict/en.js +2 -3
  106. package/dist/dict/index.js +3 -3
  107. package/dist/dict/ko.js +2 -3
  108. package/dist/dict/rc-keys.js +1 -2
  109. package/dist/dict/sd.js +2 -3
  110. package/dist/dict/sonamu-dictionary.js +7 -6
  111. package/dist/dict/utils.js +2 -3
  112. package/dist/entity/entity-manager.d.ts +66 -66
  113. package/dist/entity/entity-manager.js +4 -4
  114. package/dist/entity/entity-template-cone.js +2 -3
  115. package/dist/entity/entity.js +21 -18
  116. package/dist/env.js +1 -2
  117. package/dist/exceptions/error-handler.d.ts.map +1 -1
  118. package/dist/exceptions/error-handler.js +2 -3
  119. package/dist/exceptions/so-exceptions.js +2 -3
  120. package/dist/filter/index.js +3 -2
  121. package/dist/filter/types.js +1 -2
  122. package/dist/filter/utils.js +7 -6
  123. package/dist/index.d.ts +1 -0
  124. package/dist/index.d.ts.map +1 -1
  125. package/dist/index.js +42 -6
  126. package/dist/logger/category.js +2 -3
  127. package/dist/logger/configure.js +5 -5
  128. package/dist/migration/code-generation.js +23 -16
  129. package/dist/migration/index-where-predicate.js +2 -3
  130. package/dist/migration/migration-set.js +2 -3
  131. package/dist/migration/migrator.js +2 -3
  132. package/dist/migration/postgresql-schema-reader.js +6 -9
  133. package/dist/migration/slack-confirm.js +2 -3
  134. package/dist/naite/naite-reporter.js +2 -3
  135. package/dist/naite/naite.js +10 -8
  136. package/dist/runtime-type.js +2 -3
  137. package/dist/ssr/hmr-opt-out.js +1 -2
  138. package/dist/ssr/index.js +7 -4
  139. package/dist/ssr/registry.js +1 -2
  140. package/dist/ssr/renderer.js +2 -3
  141. package/dist/storage/base-file.js +1 -2
  142. package/dist/storage/buffered-file.js +2 -3
  143. package/dist/storage/drivers.js +1 -2
  144. package/dist/storage/index.js +2 -3
  145. package/dist/storage/s3-driver.js +1 -2
  146. package/dist/storage/storage-manager.js +2 -3
  147. package/dist/storage/uploaded-file.js +2 -3
  148. package/dist/stream/__tests__/ws-test-helpers.d.ts +108 -0
  149. package/dist/stream/__tests__/ws-test-helpers.d.ts.map +1 -0
  150. package/dist/stream/__tests__/ws-test-helpers.js +259 -0
  151. package/dist/stream/index.d.ts +1 -0
  152. package/dist/stream/index.d.ts.map +1 -1
  153. package/dist/stream/index.js +15 -4
  154. package/dist/stream/sse.js +1 -2
  155. package/dist/stream/ws-audience-resolver.d.ts +8 -5
  156. package/dist/stream/ws-audience-resolver.d.ts.map +1 -1
  157. package/dist/stream/ws-audience-resolver.js +17 -15
  158. package/dist/stream/ws-audience.js +1 -2
  159. package/dist/stream/ws-cluster-bus.d.ts +9 -4
  160. package/dist/stream/ws-cluster-bus.d.ts.map +1 -1
  161. package/dist/stream/ws-cluster-bus.js +2 -3
  162. package/dist/stream/ws-core.d.ts +10 -0
  163. package/dist/stream/ws-core.d.ts.map +1 -1
  164. package/dist/stream/ws-delivery.d.ts +30 -4
  165. package/dist/stream/ws-delivery.d.ts.map +1 -1
  166. package/dist/stream/ws-delivery.js +200 -54
  167. package/dist/stream/ws-frame.d.ts +15 -0
  168. package/dist/stream/ws-frame.d.ts.map +1 -0
  169. package/dist/stream/ws-frame.js +28 -0
  170. package/dist/stream/ws-local-connection-store.d.ts +4 -4
  171. package/dist/stream/ws-local-connection-store.d.ts.map +1 -1
  172. package/dist/stream/ws-local-connection-store.js +3 -4
  173. package/dist/stream/ws-presence-index.d.ts +36 -0
  174. package/dist/stream/ws-presence-index.d.ts.map +1 -0
  175. package/dist/stream/ws-presence-index.js +176 -0
  176. package/dist/stream/ws-presence-store.d.ts +39 -39
  177. package/dist/stream/ws-presence-store.d.ts.map +1 -1
  178. package/dist/stream/ws-presence-store.js +23 -154
  179. package/dist/stream/ws-registry.d.ts +45 -17
  180. package/dist/stream/ws-registry.d.ts.map +1 -1
  181. package/dist/stream/ws-registry.js +170 -62
  182. package/dist/stream/ws-session-id.d.ts +14 -0
  183. package/dist/stream/ws-session-id.d.ts.map +1 -0
  184. package/dist/stream/ws-session-id.js +36 -0
  185. package/dist/stream/ws-telemetry-memory.js +3 -4
  186. package/dist/stream/ws-telemetry-trace.js +1 -2
  187. package/dist/stream/ws-telemetry.js +2 -3
  188. package/dist/stream/ws.d.ts +20 -10
  189. package/dist/stream/ws.d.ts.map +1 -1
  190. package/dist/stream/ws.js +60 -38
  191. package/dist/syncer/api-parser.js +2 -3
  192. package/dist/syncer/checksum.js +4 -4
  193. package/dist/syncer/code-generator.js +4 -4
  194. package/dist/syncer/entity-operations.js +2 -3
  195. package/dist/syncer/event-batcher.js +1 -2
  196. package/dist/syncer/file-copy.js +2 -3
  197. package/dist/syncer/file-patterns.js +2 -3
  198. package/dist/syncer/file-tracking.js +2 -3
  199. package/dist/syncer/filesystem-dependencies.js +1 -2
  200. package/dist/syncer/index.js +8 -2
  201. package/dist/syncer/module-loader.js +8 -6
  202. package/dist/syncer/syncer-actions.js +8 -7
  203. package/dist/syncer/syncer.js +13 -8
  204. package/dist/syncer/watcher.js +2 -3
  205. package/dist/tasks/decorator.js +1 -2
  206. package/dist/tasks/step-wrapper.js +2 -3
  207. package/dist/tasks/workflow-manager.js +2 -3
  208. package/dist/template/entity-converter.js +17 -16
  209. package/dist/template/helpers.js +2 -3
  210. package/dist/template/implementations/entity.template.js +2 -3
  211. package/dist/template/implementations/entry-server.template.js +2 -3
  212. package/dist/template/implementations/generated.template.js +2 -3
  213. package/dist/template/implementations/generated_http.template.js +6 -6
  214. package/dist/template/implementations/generated_sso.template.js +2 -3
  215. package/dist/template/implementations/http_validators.template.js +2 -3
  216. package/dist/template/implementations/init_types.template.js +2 -3
  217. package/dist/template/implementations/model.template.js +4 -4
  218. package/dist/template/implementations/model_test.template.js +2 -3
  219. package/dist/template/implementations/queries.template.js +2 -3
  220. package/dist/template/implementations/sd.template.js +2 -3
  221. package/dist/template/implementations/services.template.js +2 -3
  222. package/dist/template/implementations/view_form.template.js +12 -9
  223. package/dist/template/implementations/view_id_all_select.template.js +2 -3
  224. package/dist/template/implementations/view_list.template.d.ts.map +1 -1
  225. package/dist/template/implementations/view_list.template.js +19 -17
  226. package/dist/template/implementations/view_search_input.template.js +2 -3
  227. package/dist/template/index.js +9 -3
  228. package/dist/template/template-manager.js +2 -3
  229. package/dist/template/template-types.js +1 -2
  230. package/dist/template/template.js +2 -3
  231. package/dist/template/zod-converter.js +54 -47
  232. package/dist/testing/_relation-graph.js +2 -3
  233. package/dist/testing/bootstrap.js +2 -3
  234. package/dist/testing/data-explorer.js +2 -3
  235. package/dist/testing/dev-test-routes.js +2 -3
  236. package/dist/testing/dev-vitest-manager.js +15 -12
  237. package/dist/testing/faker-mappings.js +1 -2
  238. package/dist/testing/filesystem.js +2 -3
  239. package/dist/testing/fixture-generator.js +2 -3
  240. package/dist/testing/fixture-loader.js +1 -2
  241. package/dist/testing/fixture-manager.js +12 -9
  242. package/dist/testing/global-setup.js +5 -5
  243. package/dist/testing/index.js +6 -3
  244. package/dist/testing/naite-vitest-reporter.js +1 -2
  245. package/dist/testing/parallel-db-manager.js +2 -3
  246. package/dist/testing/vitest-helpers.js +2 -3
  247. package/dist/tooling/__tests__/helpers/sonamu-test-root.js +2 -3
  248. package/dist/tooling/cdd-service.js +1 -2
  249. package/dist/tooling/cli-tooling.js +1 -2
  250. package/dist/tooling/fixture-service.js +1 -2
  251. package/dist/tooling/index.js +1 -2
  252. package/dist/tooling/test-run-client.js +2 -3
  253. package/dist/tsdown.api.config.js +1 -2
  254. package/dist/types/types.js +2 -3
  255. package/dist/ui/ai-api.d.ts.map +1 -1
  256. package/dist/ui/ai-api.js +4 -5
  257. package/dist/ui/ai-client.d.ts +2 -2
  258. package/dist/ui/ai-client.d.ts.map +1 -1
  259. package/dist/ui/ai-client.js +9 -8
  260. package/dist/ui/api.d.ts.map +1 -1
  261. package/dist/ui/api.js +11 -8
  262. package/dist/ui/async-route.js +1 -2
  263. package/dist/ui/cdd-service.js +22 -21
  264. package/dist/ui/migrations-api.js +6 -5
  265. package/dist/ui-web/assets/index-QDMyy31K.js +180 -0
  266. package/dist/ui-web/assets/index-dV7akMFB.css +1 -0
  267. package/dist/ui-web/index.html +2 -2
  268. package/dist/utils/async-utils.js +1 -2
  269. package/dist/utils/class-name.js +1 -2
  270. package/dist/utils/console-util.js +1 -2
  271. package/dist/utils/controller.js +2 -3
  272. package/dist/utils/esm-utils.js +1 -2
  273. package/dist/utils/fs-utils.js +2 -3
  274. package/dist/utils/lodash-able.js +1 -2
  275. package/dist/utils/model.js +1 -2
  276. package/dist/utils/object-utils.js +2 -3
  277. package/dist/utils/path-utils.js +2 -3
  278. package/dist/utils/process-utils.js +2 -3
  279. package/dist/utils/runtime-value.js +1 -2
  280. package/dist/utils/sql-parser.js +2 -3
  281. package/dist/utils/type-utils.js +8 -8
  282. package/dist/utils/utils.js +2 -3
  283. package/dist/utils/zod-error.js +2 -3
  284. package/dist/vector/chunking.js +1 -2
  285. package/dist/vector/config.js +1 -2
  286. package/dist/vector/embedding.js +4 -4
  287. package/package.json +63 -63
  288. package/src/ai/agents/agent.ts +1 -1
  289. package/src/api/__tests__/sonamu.plugins.test.ts +11 -1
  290. package/src/api/__tests__/sonamu.websocket-routes.test.ts +234 -0
  291. package/src/api/__tests__/sonamu.websocket.test.ts +241 -24
  292. package/src/api/config.ts +1 -1
  293. package/src/api/context.ts +2 -8
  294. package/src/api/sonamu.ts +46 -28
  295. package/src/auth/audit-log/plugin.ts +2 -0
  296. package/src/compress/types.ts +1 -1
  297. package/src/exceptions/error-handler.ts +3 -2
  298. package/src/index.ts +1 -0
  299. package/src/stream/__tests__/ws-contracts.test.ts +483 -265
  300. package/src/stream/__tests__/ws-multinode.test.ts +326 -0
  301. package/src/stream/__tests__/ws-registry-async.test.ts +855 -0
  302. package/src/stream/__tests__/ws-test-helpers.ts +360 -0
  303. package/src/stream/__tests__/ws.test.ts +342 -145
  304. package/src/stream/index.ts +1 -0
  305. package/src/stream/ws-audience-resolver.ts +21 -19
  306. package/src/stream/ws-cluster-bus.ts +12 -4
  307. package/src/stream/ws-core.ts +14 -0
  308. package/src/stream/ws-delivery.ts +321 -97
  309. package/src/stream/ws-frame.ts +39 -0
  310. package/src/stream/ws-local-connection-store.ts +10 -9
  311. package/src/stream/ws-presence-index.ts +273 -0
  312. package/src/stream/ws-presence-store.ts +64 -284
  313. package/src/stream/ws-registry.ts +272 -85
  314. package/src/stream/ws-session-id.ts +39 -0
  315. package/src/stream/ws.ts +91 -50
  316. package/src/template/implementations/model.template.ts +3 -3
  317. package/src/template/implementations/view_list.template.ts +12 -13
  318. package/src/ui/ai-api.ts +4 -2
  319. package/src/ui/ai-client.ts +2 -2
  320. package/src/ui/api.ts +58 -62
  321. package/dist/ui-web/assets/index-BMdIyKXS.css +0 -1
  322. package/dist/ui-web/assets/index-LpE8u19O.js +0 -178
@@ -1,5 +1,5 @@
1
1
  import "node:module";
2
- //#region \0rolldown/runtime.js
2
+ // \0rolldown/runtime.js
3
3
  var __defProp = Object.defineProperty;
4
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -32,5 +32,4 @@ var __copyProps = (to, from, except, desc) => {
32
32
  return to;
33
33
  };
34
34
  var __toCommonJS = (mod) => __hasOwnProp.call(mod, "module.exports") ? mod["module.exports"] : __copyProps(__defProp({}, "__esModule", { value: true }), mod);
35
- //#endregion
36
35
  export { __esmMin, __exportAll, __toCommonJS };
@@ -5,7 +5,7 @@ import { tool } from "@ai-sdk/provider-utils";
5
5
  import { getLogger } from "@logtape/logtape";
6
6
  import { ToolLoopAgent } from "ai";
7
7
  import inflection from "inflection";
8
- //#region src/ai/agents/agent.ts
8
+ // src/ai/agents/agent.ts
9
9
  init_category();
10
10
  init_class_name();
11
11
  const toolDefinitions = [];
@@ -76,7 +76,6 @@ function tools(options) {
76
76
  });
77
77
  };
78
78
  }
79
- //#endregion
80
79
  export { BaseAgentClass, tools };
81
80
 
82
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FpL2FnZW50cy9hZ2VudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY0xvY2FsU3RvcmFnZSB9IGZyb20gXCJhc3luY19ob29rc1wiO1xuXG5pbXBvcnQgeyB0eXBlIFRvb2wsIHR5cGUgVG9vbEV4ZWN1dGlvbk9wdGlvbnMgfSBmcm9tIFwiQGFpLXNkay9wcm92aWRlci11dGlsc1wiO1xuaW1wb3J0IHsgdG9vbCB9IGZyb20gXCJAYWktc2RrL3Byb3ZpZGVyLXV0aWxzXCI7XG5pbXBvcnQgeyBnZXRMb2dnZXIgfSBmcm9tIFwiQGxvZ3RhcGUvbG9ndGFwZVwiO1xuaW1wb3J0IHsgdHlwZSBMb2dnZXIgfSBmcm9tIFwiQGxvZ3RhcGUvbG9ndGFwZVwiO1xuaW1wb3J0IHsgdHlwZSBBZ2VudCwgdHlwZSBUb29sU2V0IH0gZnJvbSBcImFpXCI7XG5pbXBvcnQgeyBUb29sTG9vcEFnZW50IH0gZnJvbSBcImFpXCI7XG5pbXBvcnQgaW5mbGVjdGlvbiBmcm9tIFwiaW5mbGVjdGlvblwiO1xuXG5pbXBvcnQgeyBjb252ZXJ0RG9tYWluVG9DYXRlZ29yeSB9IGZyb20gXCIuLi8uLi9sb2dnZXIvY2F0ZWdvcnlcIjtcbmltcG9ydCB7IGdldE1vZGVsTmFtZUZyb21DbGFzc05hbWUgfSBmcm9tIFwiLi4vLi4vdXRpbHMvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHtcbiAgdHlwZSBBZ2VudENvbmZpZyxcbiAgdHlwZSBSZWdpc3RlcmVkVG9vbERlZmluaXRpb24sXG4gIHR5cGUgVG9vbERlY29yYXRvck9wdGlvbnMsXG59IGZyb20gXCIuL3R5cGVzXCI7XG5cbmNvbnN0IHRvb2xEZWZpbml0aW9uczogUmVnaXN0ZXJlZFRvb2xEZWZpbml0aW9uW10gPSBbXTtcblxuLy8gVE9ETyhIYXplLCAyNTEyMDUpOiDthY3siqTtirjqsIAg7JWE64uMIHN0cnVjdHVyZWQgb3V0cHV07J28IOqyveyasOyXkCDrjIDtlZwg7KeA7JuQ7J20IO2VhOyalFxuZXhwb3J0IGNsYXNzIEJhc2VBZ2VudENsYXNzPFRTdG9yZT4ge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbG9nZ2VyOiBMb2dnZXI7XG5cbiAgcHJpdmF0ZSBhc3luY0xvY2FsU3RvcmFnZSA9IG5ldyBBc3luY0xvY2FsU3RvcmFnZTxUU3RvcmU+KCk7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGFnZW50TmFtZTogc3RyaW5nID0gdGhpcy5jb25zdHJ1Y3Rvci5uYW1lKSB7XG4gICAgdGhpcy5sb2dnZXIgPSBnZXRMb2dnZXIoY29udmVydERvbWFpblRvQ2F0ZWdvcnkodGhpcy5hZ2VudE5hbWUsIFwiYWdlbnRcIikpO1xuICB9XG5cbiAgcHVibGljIGdldCBzdG9yZSgpIHtcbiAgICByZXR1cm4gdGhpcy5hc3luY0xvY2FsU3RvcmFnZS5nZXRTdG9yZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCB0b29sU2V0KCkge1xuICAgIHJldHVybiB0b29sRGVmaW5pdGlvbnNcbiAgICAgIC5maWx0ZXIoKGRlZikgPT4gZGVmLmZyb20gPT09IHRoaXMuY29uc3RydWN0b3IubmFtZSlcbiAgICAgIC5yZWR1Y2U8UmVjb3JkPHN0cmluZywgVG9vbD4+KChhY2MsIGRlZikgPT4ge1xuICAgICAgICBhY2NbZGVmLm5hbWVdID0gdG9vbCh7XG4gICAgICAgICAgZGVzY3JpcHRpb246IGRlZi5kZXNjcmlwdGlvbixcbiAgICAgICAgICBpbnB1dFNjaGVtYTogZGVmLnNjaGVtYS5pbnB1dCxcbiAgICAgICAgICBvdXRwdXRTY2hlbWE6IGRlZi5zY2hlbWEub3V0cHV0LFxuICAgICAgICAgIG5lZWRzQXBwcm92YWw6IGRlZi5uZWVkc0FwcHJvdmFsID8/IGZhbHNlLFxuICAgICAgICAgIHRvTW9kZWxPdXRwdXQ6IGRlZi50b01vZGVsT3V0cHV0LFxuICAgICAgICAgIHByb3ZpZGVyT3B0aW9uczogZGVmLnByb3ZpZGVyT3B0aW9ucyxcbiAgICAgICAgICBleGVjdXRlOiA8SW5wdXQ+KGlucHV0OiBJbnB1dCwgb3B0aW9uczogVG9vbEV4ZWN1dGlvbk9wdGlvbnMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGJvdW5kID0gZGVmLm1ldGhvZC5iaW5kKHRoaXMpO1xuICAgICAgICAgICAgcmV0dXJuIGJvdW5kKGlucHV0LCBvcHRpb25zKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIHt9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdG9vbHMoKTogVG9vbFNldCB7XG4gICAgcmV0dXJuIHRoaXMudG9vbFNldDtcbiAgfVxuXG4gIHB1YmxpYyB1c2U8VFJldHVybj4oXG4gICAgY29uZmlnOiBBZ2VudENvbmZpZyxcbiAgICBpbml0aWFsU3RhdHVzOiBUU3RvcmUsXG4gICAgY2FsbGJhY2s6IChhZ2VudDogQWdlbnQ8bmV2ZXIsIFRvb2xTZXQ+KSA9PiBQcm9taXNlPFRSZXR1cm4+LFxuICApIHtcbiAgICBjb25zdCBhZ2VudCA9IG5ldyBUb29sTG9vcEFnZW50KHtcbiAgICAgIC4uLmNvbmZpZyxcbiAgICAgIHRvb2xzOiB0aGlzLnRvb2xzLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuYXN5bmNMb2NhbFN0b3JhZ2UucnVuKGluaXRpYWxTdGF0dXMsICgpID0+IGNhbGxiYWNrKGFnZW50KSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvb2xzPElOUFVULCBPVVRQVVQgPSB1bmtub3duPihvcHRpb25zOiBUb29sRGVjb3JhdG9yT3B0aW9uczxJTlBVVCwgT1VUUFVUPikge1xuICBjb25zdCB7IG5hbWUsIGRlc2NyaXB0aW9uLCBzY2hlbWEsIG5lZWRzQXBwcm92YWwsIHRvTW9kZWxPdXRwdXQsIHByb3ZpZGVyT3B0aW9ucyB9ID0gb3B0aW9ucztcbiAgcmV0dXJuICh0YXJnZXQ6IEJhc2VBZ2VudENsYXNzPHVua25vd24+LCBwcm9wZXJ0eUtleTogc3RyaW5nLCBkZXNjcmlwdG9yOiBQcm9wZXJ0eURlc2NyaXB0b3IpID0+IHtcbiAgICBpZiAoISh0YXJnZXQgaW5zdGFuY2VvZiBCYXNlQWdlbnRDbGFzcykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIlRhcmdldCBtdXN0IGJlIGEgc3ViY2xhc3Mgb2YgQmFzZUFnZW50Q2xhc3NcIik7XG4gICAgfVxuXG4gICAgY29uc3QgbW9kZWxOYW1lID0gZ2V0TW9kZWxOYW1lRnJvbUNsYXNzTmFtZSh0YXJnZXQuY29uc3RydWN0b3IubmFtZSk7XG4gICAgY29uc3QgbWV0aG9kTmFtZSA9IHByb3BlcnR5S2V5O1xuXG4gICAgY29uc3Qgb3JpZ2luYWxNZXRob2QgPSBkZXNjcmlwdG9yLnZhbHVlO1xuICAgIGNvbnN0IG1ldGhvZCA9IGFzeW5jIGZ1bmN0aW9uICh0aGlzOiBCYXNlQWdlbnRDbGFzczx1bmtub3duPiwgLi4uYXJnczogdW5rbm93bltdKSB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcInRvb2xzOiB7bW9kZWx9LnttZXRob2R9IHdpdGggYXJnczoge2FyZ3N9XCIsIHtcbiAgICAgICAgbW9kZWw6IG1vZGVsTmFtZSxcbiAgICAgICAgbWV0aG9kOiBtZXRob2ROYW1lLFxuICAgICAgICBhcmdzLFxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBvcmlnaW5hbE1ldGhvZC5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICB9O1xuICAgIGRlc2NyaXB0b3IudmFsdWUgPSBtZXRob2Q7XG5cbiAgICBjb25zdCBkZWZhdWx0UGF0aCA9XG4gICAgICBtb2RlbE5hbWUgIT09IHVuZGVmaW5lZFxuICAgICAgICA/IGAke2luZmxlY3Rpb24uY2FtZWxpemUoXG4gICAgICAgICAgICAobW9kZWxOYW1lID8/IFwiXCIpLnJlcGxhY2UoL01vZGVsJC8sIFwiXCIpLnJlcGxhY2UoL0ZyYW1lJC8sIFwiXCIpLFxuICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICApfS4ke2luZmxlY3Rpb24uY2FtZWxpemUobWV0aG9kTmFtZSwgdHJ1ZSl9YFxuICAgICAgICA6IGluZmxlY3Rpb24uY2FtZWxpemUobWV0aG9kTmFtZSwgdHJ1ZSk7XG5cbiAgICB0b29sRGVmaW5pdGlvbnMucHVzaCh7XG4gICAgICBuYW1lOiBuYW1lID8/IGRlZmF1bHRQYXRoLFxuICAgICAgZGVzY3JpcHRpb24sXG4gICAgICBzY2hlbWEsXG4gICAgICBuZWVkc0FwcHJvdmFsLFxuICAgICAgdG9Nb2RlbE91dHB1dCxcbiAgICAgIHByb3ZpZGVyT3B0aW9ucyxcbiAgICAgIG1ldGhvZCxcbiAgICAgIGZyb206IHRhcmdldC5jb25zdHJ1Y3Rvci5uYW1lLFxuICAgIH0pO1xuICB9O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztjQVUrRDtnQkFDRztBQU9sRSxNQUFNLGtCQUE4QyxDQUFDO0FBR3JELElBQWEsaUJBQWIsTUFBb0M7Q0FLTjtDQUo1QjtDQUVBLG9CQUE0QixJQUFJLGtCQUEwQjtDQUUxRCxZQUFZLFlBQW9DLEtBQUssWUFBWSxNQUFNO0VBQTNDLEtBQUEsWUFBQTtFQUMxQixLQUFLLFNBQVMsVUFBVSx3QkFBd0IsS0FBSyxXQUFXLE9BQU8sQ0FBQztDQUMxRTtDQUVBLElBQVcsUUFBUTtFQUNqQixPQUFPLEtBQUssa0JBQWtCLFNBQVM7Q0FDekM7Q0FFQSxJQUFjLFVBQVU7RUFDdEIsT0FBTyxnQkFDSixRQUFRLFFBQVEsSUFBSSxTQUFTLEtBQUssWUFBWSxJQUFJLENBQUMsQ0FDbkQsUUFBOEIsS0FBSyxRQUFRO0dBQzFDLElBQUksSUFBSSxRQUFRLEtBQUs7SUFDbkIsYUFBYSxJQUFJO0lBQ2pCLGFBQWEsSUFBSSxPQUFPO0lBQ3hCLGNBQWMsSUFBSSxPQUFPO0lBQ3pCLGVBQWUsSUFBSSxpQkFBaUI7SUFDcEMsZUFBZSxJQUFJO0lBQ25CLGlCQUFpQixJQUFJO0lBQ3JCLFVBQWlCLE9BQWMsWUFBa0M7S0FFL0QsT0FEYyxJQUFJLE9BQU8sS0FBSyxJQUN2QixDQUFBLENBQU0sT0FBTyxPQUFPO0lBQzdCO0dBQ0YsQ0FBQztHQUNELE9BQU87RUFDVCxHQUFHLENBQUMsQ0FBQztDQUNUO0NBRUEsSUFBVyxRQUFpQjtFQUMxQixPQUFPLEtBQUs7Q0FDZDtDQUVBLElBQ0UsUUFDQSxlQUNBLFVBQ0E7RUFDQSxNQUFNLFFBQVEsSUFBSSxjQUFjO0dBQzlCLEdBQUc7R0FDSCxPQUFPLEtBQUs7RUFDZCxDQUFDO0VBRUQsT0FBTyxLQUFLLGtCQUFrQixJQUFJLHFCQUFxQixTQUFTLEtBQUssQ0FBQztDQUN4RTtBQUNGO0FBRUEsU0FBZ0IsTUFBK0IsU0FBOEM7Q0FDM0YsTUFBTSxFQUFFLE1BQU0sYUFBYSxRQUFRLGVBQWUsZUFBZSxvQkFBb0I7Q0FDckYsUUFBUSxRQUFpQyxhQUFxQixlQUFtQztFQUMvRixJQUFJLEVBQUUsa0JBQWtCLGlCQUN0QixNQUFNLElBQUksTUFBTSw2Q0FBNkM7RUFHL0QsTUFBTSxZQUFZLDBCQUEwQixPQUFPLFlBQVksSUFBSTtFQUNuRSxNQUFNLGFBQWE7RUFFbkIsTUFBTSxpQkFBaUIsV0FBVztFQUNsQyxNQUFNLFNBQVMsZUFBK0MsR0FBRyxNQUFpQjtHQUNoRixLQUFLLE9BQU8sTUFBTSw2Q0FBNkM7SUFDN0QsT0FBTztJQUNQLFFBQVE7SUFDUjtHQUNGLENBQUM7R0FFRCxPQUFPLGVBQWUsTUFBTSxNQUFNLElBQUk7RUFDeEM7RUFDQSxXQUFXLFFBQVE7RUFFbkIsTUFBTSxjQUNKLGNBQWMsU0FDVixHQUFHLFdBQVcsVUFDWCxhQUFhLEdBQUEsQ0FBSSxRQUFRLFVBQVUsRUFBRSxDQUFDLENBQUMsUUFBUSxVQUFVLEVBQUUsR0FDNUQsSUFDRixFQUFFLEdBQUcsV0FBVyxTQUFTLFlBQVksSUFBSSxNQUN6QyxXQUFXLFNBQVMsWUFBWSxJQUFJO0VBRTFDLGdCQUFnQixLQUFLO0dBQ25CLE1BQU0sUUFBUTtHQUNkO0dBQ0E7R0FDQTtHQUNBO0dBQ0E7R0FDQTtHQUNBLE1BQU0sT0FBTyxZQUFZO0VBQzNCLENBQUM7Q0FDSDtBQUNGIn0=
81
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FpL2FnZW50cy9hZ2VudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY0xvY2FsU3RvcmFnZSB9IGZyb20gXCJhc3luY19ob29rc1wiO1xuXG5pbXBvcnQgeyB0eXBlIFRvb2wsIHR5cGUgVG9vbEV4ZWN1dGlvbk9wdGlvbnMgfSBmcm9tIFwiQGFpLXNkay9wcm92aWRlci11dGlsc1wiO1xuaW1wb3J0IHsgdG9vbCB9IGZyb20gXCJAYWktc2RrL3Byb3ZpZGVyLXV0aWxzXCI7XG5pbXBvcnQgeyBnZXRMb2dnZXIgfSBmcm9tIFwiQGxvZ3RhcGUvbG9ndGFwZVwiO1xuaW1wb3J0IHsgdHlwZSBMb2dnZXIgfSBmcm9tIFwiQGxvZ3RhcGUvbG9ndGFwZVwiO1xuaW1wb3J0IHsgdHlwZSBBZ2VudCwgdHlwZSBUb29sU2V0IH0gZnJvbSBcImFpXCI7XG5pbXBvcnQgeyBUb29sTG9vcEFnZW50IH0gZnJvbSBcImFpXCI7XG5pbXBvcnQgaW5mbGVjdGlvbiBmcm9tIFwiaW5mbGVjdGlvblwiO1xuXG5pbXBvcnQgeyBjb252ZXJ0RG9tYWluVG9DYXRlZ29yeSB9IGZyb20gXCIuLi8uLi9sb2dnZXIvY2F0ZWdvcnlcIjtcbmltcG9ydCB7IGdldE1vZGVsTmFtZUZyb21DbGFzc05hbWUgfSBmcm9tIFwiLi4vLi4vdXRpbHMvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHtcbiAgdHlwZSBBZ2VudENvbmZpZyxcbiAgdHlwZSBSZWdpc3RlcmVkVG9vbERlZmluaXRpb24sXG4gIHR5cGUgVG9vbERlY29yYXRvck9wdGlvbnMsXG59IGZyb20gXCIuL3R5cGVzXCI7XG5cbmNvbnN0IHRvb2xEZWZpbml0aW9uczogUmVnaXN0ZXJlZFRvb2xEZWZpbml0aW9uW10gPSBbXTtcblxuLy8gVE9ETyhIYXplLCAyNTEyMDUpOiDthY3siqTtirjqsIAg7JWE64uMIHN0cnVjdHVyZWQgb3V0cHV07J28IOqyveyasOyXkCDrjIDtlZwg7KeA7JuQ7J20IO2VhOyalFxuZXhwb3J0IGNsYXNzIEJhc2VBZ2VudENsYXNzPFRTdG9yZT4ge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbG9nZ2VyOiBMb2dnZXI7XG5cbiAgcHJpdmF0ZSBhc3luY0xvY2FsU3RvcmFnZSA9IG5ldyBBc3luY0xvY2FsU3RvcmFnZTxUU3RvcmU+KCk7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGFnZW50TmFtZTogc3RyaW5nID0gdGhpcy5jb25zdHJ1Y3Rvci5uYW1lKSB7XG4gICAgdGhpcy5sb2dnZXIgPSBnZXRMb2dnZXIoY29udmVydERvbWFpblRvQ2F0ZWdvcnkodGhpcy5hZ2VudE5hbWUsIFwiYWdlbnRcIikpO1xuICB9XG5cbiAgcHVibGljIGdldCBzdG9yZSgpIHtcbiAgICByZXR1cm4gdGhpcy5hc3luY0xvY2FsU3RvcmFnZS5nZXRTdG9yZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCB0b29sU2V0KCkge1xuICAgIHJldHVybiB0b29sRGVmaW5pdGlvbnNcbiAgICAgIC5maWx0ZXIoKGRlZikgPT4gZGVmLmZyb20gPT09IHRoaXMuY29uc3RydWN0b3IubmFtZSlcbiAgICAgIC5yZWR1Y2U8UmVjb3JkPHN0cmluZywgVG9vbD4+KChhY2MsIGRlZikgPT4ge1xuICAgICAgICBhY2NbZGVmLm5hbWVdID0gdG9vbCh7XG4gICAgICAgICAgZGVzY3JpcHRpb246IGRlZi5kZXNjcmlwdGlvbixcbiAgICAgICAgICBpbnB1dFNjaGVtYTogZGVmLnNjaGVtYS5pbnB1dCxcbiAgICAgICAgICBvdXRwdXRTY2hlbWE6IGRlZi5zY2hlbWEub3V0cHV0LFxuICAgICAgICAgIG5lZWRzQXBwcm92YWw6IGRlZi5uZWVkc0FwcHJvdmFsID8/IGZhbHNlLFxuICAgICAgICAgIHRvTW9kZWxPdXRwdXQ6IGRlZi50b01vZGVsT3V0cHV0LFxuICAgICAgICAgIHByb3ZpZGVyT3B0aW9uczogZGVmLnByb3ZpZGVyT3B0aW9ucyxcbiAgICAgICAgICBleGVjdXRlOiA8SW5wdXQ+KGlucHV0OiBJbnB1dCwgb3B0aW9uczogVG9vbEV4ZWN1dGlvbk9wdGlvbnM8dW5rbm93bj4pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGJvdW5kID0gZGVmLm1ldGhvZC5iaW5kKHRoaXMpO1xuICAgICAgICAgICAgcmV0dXJuIGJvdW5kKGlucHV0LCBvcHRpb25zKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIHt9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdG9vbHMoKTogVG9vbFNldCB7XG4gICAgcmV0dXJuIHRoaXMudG9vbFNldDtcbiAgfVxuXG4gIHB1YmxpYyB1c2U8VFJldHVybj4oXG4gICAgY29uZmlnOiBBZ2VudENvbmZpZyxcbiAgICBpbml0aWFsU3RhdHVzOiBUU3RvcmUsXG4gICAgY2FsbGJhY2s6IChhZ2VudDogQWdlbnQ8bmV2ZXIsIFRvb2xTZXQ+KSA9PiBQcm9taXNlPFRSZXR1cm4+LFxuICApIHtcbiAgICBjb25zdCBhZ2VudCA9IG5ldyBUb29sTG9vcEFnZW50KHtcbiAgICAgIC4uLmNvbmZpZyxcbiAgICAgIHRvb2xzOiB0aGlzLnRvb2xzLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuYXN5bmNMb2NhbFN0b3JhZ2UucnVuKGluaXRpYWxTdGF0dXMsICgpID0+IGNhbGxiYWNrKGFnZW50KSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvb2xzPElOUFVULCBPVVRQVVQgPSB1bmtub3duPihvcHRpb25zOiBUb29sRGVjb3JhdG9yT3B0aW9uczxJTlBVVCwgT1VUUFVUPikge1xuICBjb25zdCB7IG5hbWUsIGRlc2NyaXB0aW9uLCBzY2hlbWEsIG5lZWRzQXBwcm92YWwsIHRvTW9kZWxPdXRwdXQsIHByb3ZpZGVyT3B0aW9ucyB9ID0gb3B0aW9ucztcbiAgcmV0dXJuICh0YXJnZXQ6IEJhc2VBZ2VudENsYXNzPHVua25vd24+LCBwcm9wZXJ0eUtleTogc3RyaW5nLCBkZXNjcmlwdG9yOiBQcm9wZXJ0eURlc2NyaXB0b3IpID0+IHtcbiAgICBpZiAoISh0YXJnZXQgaW5zdGFuY2VvZiBCYXNlQWdlbnRDbGFzcykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIlRhcmdldCBtdXN0IGJlIGEgc3ViY2xhc3Mgb2YgQmFzZUFnZW50Q2xhc3NcIik7XG4gICAgfVxuXG4gICAgY29uc3QgbW9kZWxOYW1lID0gZ2V0TW9kZWxOYW1lRnJvbUNsYXNzTmFtZSh0YXJnZXQuY29uc3RydWN0b3IubmFtZSk7XG4gICAgY29uc3QgbWV0aG9kTmFtZSA9IHByb3BlcnR5S2V5O1xuXG4gICAgY29uc3Qgb3JpZ2luYWxNZXRob2QgPSBkZXNjcmlwdG9yLnZhbHVlO1xuICAgIGNvbnN0IG1ldGhvZCA9IGFzeW5jIGZ1bmN0aW9uICh0aGlzOiBCYXNlQWdlbnRDbGFzczx1bmtub3duPiwgLi4uYXJnczogdW5rbm93bltdKSB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcInRvb2xzOiB7bW9kZWx9LnttZXRob2R9IHdpdGggYXJnczoge2FyZ3N9XCIsIHtcbiAgICAgICAgbW9kZWw6IG1vZGVsTmFtZSxcbiAgICAgICAgbWV0aG9kOiBtZXRob2ROYW1lLFxuICAgICAgICBhcmdzLFxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBvcmlnaW5hbE1ldGhvZC5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICB9O1xuICAgIGRlc2NyaXB0b3IudmFsdWUgPSBtZXRob2Q7XG5cbiAgICBjb25zdCBkZWZhdWx0UGF0aCA9XG4gICAgICBtb2RlbE5hbWUgIT09IHVuZGVmaW5lZFxuICAgICAgICA/IGAke2luZmxlY3Rpb24uY2FtZWxpemUoXG4gICAgICAgICAgICAobW9kZWxOYW1lID8/IFwiXCIpLnJlcGxhY2UoL01vZGVsJC8sIFwiXCIpLnJlcGxhY2UoL0ZyYW1lJC8sIFwiXCIpLFxuICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICApfS4ke2luZmxlY3Rpb24uY2FtZWxpemUobWV0aG9kTmFtZSwgdHJ1ZSl9YFxuICAgICAgICA6IGluZmxlY3Rpb24uY2FtZWxpemUobWV0aG9kTmFtZSwgdHJ1ZSk7XG5cbiAgICB0b29sRGVmaW5pdGlvbnMucHVzaCh7XG4gICAgICBuYW1lOiBuYW1lID8/IGRlZmF1bHRQYXRoLFxuICAgICAgZGVzY3JpcHRpb24sXG4gICAgICBzY2hlbWEsXG4gICAgICBuZWVkc0FwcHJvdmFsLFxuICAgICAgdG9Nb2RlbE91dHB1dCxcbiAgICAgIHByb3ZpZGVyT3B0aW9ucyxcbiAgICAgIG1ldGhvZCxcbiAgICAgIGZyb206IHRhcmdldC5jb25zdHJ1Y3Rvci5uYW1lLFxuICAgIH0pO1xuICB9O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQVUrRCxjQUFBO0FBQ0csZ0JBQUE7QUFPbEUsTUFBTSxrQkFBOEMsQ0FBQztBQUdyRCxJQUFhLGlCQUFiLE1BQW9DO0NBS047Q0FKNUI7Q0FFQSxvQkFBNEIsSUFBSSxrQkFBMEI7Q0FFMUQsWUFBWSxZQUFvQyxLQUFLLFlBQVksTUFBTTtFQUEzQyxLQUFBLFlBQUE7RUFDMUIsS0FBSyxTQUFTLFVBQVUsd0JBQXdCLEtBQUssV0FBVyxPQUFPLENBQUM7Q0FDMUU7Q0FFQSxJQUFXLFFBQVE7RUFDakIsT0FBTyxLQUFLLGtCQUFrQixTQUFTO0NBQ3pDO0NBRUEsSUFBYyxVQUFVO0VBQ3RCLE9BQU8sZ0JBQ0osUUFBUSxRQUFRLElBQUksU0FBUyxLQUFLLFlBQVksSUFBSSxDQUFDLENBQ25ELFFBQThCLEtBQUssUUFBUTtHQUMxQyxJQUFJLElBQUksUUFBUSxLQUFLO0lBQ25CLGFBQWEsSUFBSTtJQUNqQixhQUFhLElBQUksT0FBTztJQUN4QixjQUFjLElBQUksT0FBTztJQUN6QixlQUFlLElBQUksaUJBQWlCO0lBQ3BDLGVBQWUsSUFBSTtJQUNuQixpQkFBaUIsSUFBSTtJQUNyQixVQUFpQixPQUFjLFlBQTJDO0tBRXhFLE9BRGMsSUFBSSxPQUFPLEtBQUssSUFDdkIsQ0FBQSxDQUFNLE9BQU8sT0FBTztJQUM3QjtHQUNGLENBQUM7R0FDRCxPQUFPO0VBQ1QsR0FBRyxDQUFDLENBQUM7Q0FDVDtDQUVBLElBQVcsUUFBaUI7RUFDMUIsT0FBTyxLQUFLO0NBQ2Q7Q0FFQSxJQUNFLFFBQ0EsZUFDQSxVQUNBO0VBQ0EsTUFBTSxRQUFRLElBQUksY0FBYztHQUM5QixHQUFHO0dBQ0gsT0FBTyxLQUFLO0VBQ2QsQ0FBQztFQUVELE9BQU8sS0FBSyxrQkFBa0IsSUFBSSxxQkFBcUIsU0FBUyxLQUFLLENBQUM7Q0FDeEU7QUFDRjtBQUVBLFNBQWdCLE1BQStCLFNBQThDO0NBQzNGLE1BQU0sRUFBRSxNQUFNLGFBQWEsUUFBUSxlQUFlLGVBQWUsb0JBQW9CO0NBQ3JGLFFBQVEsUUFBaUMsYUFBcUIsZUFBbUM7RUFDL0YsSUFBSSxFQUFFLGtCQUFrQixpQkFDdEIsTUFBTSxJQUFJLE1BQU0sNkNBQTZDO0VBRy9ELE1BQU0sWUFBWSwwQkFBMEIsT0FBTyxZQUFZLElBQUk7RUFDbkUsTUFBTSxhQUFhO0VBRW5CLE1BQU0saUJBQWlCLFdBQVc7RUFDbEMsTUFBTSxTQUFTLGVBQStDLEdBQUcsTUFBaUI7R0FDaEYsS0FBSyxPQUFPLE1BQU0sNkNBQTZDO0lBQzdELE9BQU87SUFDUCxRQUFRO0lBQ1I7R0FDRixDQUFDO0dBRUQsT0FBTyxlQUFlLE1BQU0sTUFBTSxJQUFJO0VBQ3hDO0VBQ0EsV0FBVyxRQUFRO0VBRW5CLE1BQU0sY0FDSixjQUFjLFNBQ1YsR0FBRyxXQUFXLFVBQ1gsYUFBYSxHQUFBLENBQUksUUFBUSxVQUFVLEVBQUUsQ0FBQyxDQUFDLFFBQVEsVUFBVSxFQUFFLEdBQzVELElBQ0YsRUFBRSxHQUFHLFdBQVcsU0FBUyxZQUFZLElBQUksTUFDekMsV0FBVyxTQUFTLFlBQVksSUFBSTtFQUUxQyxnQkFBZ0IsS0FBSztHQUNuQixNQUFNLFFBQVE7R0FDZDtHQUNBO0dBQ0E7R0FDQTtHQUNBO0dBQ0E7R0FDQSxNQUFNLE9BQU8sWUFBWTtFQUMzQixDQUFDO0NBQ0g7QUFDRiJ9
@@ -1,3 +1,2 @@
1
- import { BaseAgentClass, tools } from "./agent.js";
1
+ export { BaseAgentClass, tools } from "./agent.js";
2
2
  import "./types.js";
3
- export { BaseAgentClass, tools };
package/dist/ai/index.js CHANGED
@@ -1,3 +1,2 @@
1
- import { BaseAgentClass, tools } from "./agents/agent.js";
1
+ export { BaseAgentClass, tools } from "./agents/agent.js";
2
2
  import "./agents/index.js";
3
- export { BaseAgentClass, tools };
@@ -1,6 +1,6 @@
1
1
  import { lazySchema, zodSchema } from "@ai-sdk/provider-utils";
2
2
  import { z } from "zod";
3
- //#region src/ai/providers/rtzr/api.ts
3
+ // src/ai/providers/rtzr/api.ts
4
4
  const rtzrAuthResponseSchema = z.object({
5
5
  access_token: z.string(),
6
6
  expire_at: z.number()
@@ -25,7 +25,6 @@ const rtzrTranscriptionResultResponseSchema = lazySchema(() => zodSchema(z.objec
25
25
  lang: z.string().optional()
26
26
  })) }).nullish()
27
27
  })));
28
- //#endregion
29
28
  export { rtzrAuthResponseSchema, rtzrTranscriptionResponseSchema, rtzrTranscriptionResultResponseSchema };
30
29
 
31
30
  //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9haS9wcm92aWRlcnMvcnR6ci9hcGkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbGF6eVNjaGVtYSwgem9kU2NoZW1hIH0gZnJvbSBcIkBhaS1zZGsvcHJvdmlkZXItdXRpbHNcIjtcbmltcG9ydCB7IHogfSBmcm9tIFwiem9kXCI7XG5cbmV4cG9ydCBjb25zdCBydHpyQXV0aFJlc3BvbnNlU2NoZW1hID0gei5vYmplY3Qoe1xuICBhY2Nlc3NfdG9rZW46IHouc3RyaW5nKCksXG4gIGV4cGlyZV9hdDogei5udW1iZXIoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgcnR6clRyYW5zY3JpcHRpb25SZXNwb25zZVNjaGVtYSA9IGxhenlTY2hlbWEoKCkgPT5cbiAgem9kU2NoZW1hKFxuICAgIHoub2JqZWN0KHtcbiAgICAgIGlkOiB6LnN0cmluZygpLFxuICAgIH0pLFxuICApLFxuKTtcblxuZXhwb3J0IGNvbnN0IHJ0enJUcmFuc2NyaXB0aW9uUmVzdWx0UmVzcG9uc2VTY2hlbWEgPSBsYXp5U2NoZW1hKCgpID0+XG4gIHpvZFNjaGVtYShcbiAgICB6Lm9iamVjdCh7XG4gICAgICBpZDogei5zdHJpbmcoKSxcbiAgICAgIHN0YXR1czogei5lbnVtKFtcInRyYW5zY3JpYmluZ1wiLCBcImNvbXBsZXRlZFwiLCBcImZhaWxlZFwiXSksXG4gICAgICBlcnJvcjogelxuICAgICAgICAub2JqZWN0KHtcbiAgICAgICAgICBjb2RlOiB6LnVuaW9uKFt6LnN0cmluZygpLCB6Lm51bWJlcigpXSkubnVsbGlzaCgpLFxuICAgICAgICAgIG1lc3NhZ2U6IHouc3RyaW5nKCkubnVsbGlzaCgpLFxuICAgICAgICB9KVxuICAgICAgICAubnVsbGlzaCgpLFxuICAgICAgcmVzdWx0czogelxuICAgICAgICAub2JqZWN0KHtcbiAgICAgICAgICB1dHRlcmFuY2VzOiB6LmFycmF5KFxuICAgICAgICAgICAgei5vYmplY3Qoe1xuICAgICAgICAgICAgICBzdGFydF9hdDogei5udW1iZXIoKSxcbiAgICAgICAgICAgICAgZHVyYXRpb246IHoubnVtYmVyKCksXG4gICAgICAgICAgICAgIG1zZzogei5zdHJpbmcoKSxcbiAgICAgICAgICAgICAgc3BrOiB6Lm51bWJlcigpLFxuICAgICAgICAgICAgICBsYW5nOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApLFxuICAgICAgICB9KVxuICAgICAgICAubnVsbGlzaCgpLFxuICAgIH0pLFxuICApLFxuKTtcbiJdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsTUFBYSx5QkFBeUIsRUFBRSxPQUFPO0NBQzdDLGNBQWMsRUFBRSxPQUFPO0NBQ3ZCLFdBQVcsRUFBRSxPQUFPO0FBQ3RCLENBQUM7QUFFRCxNQUFhLGtDQUFrQyxpQkFDN0MsVUFDRSxFQUFFLE9BQU8sRUFDUCxJQUFJLEVBQUUsT0FBTyxFQUNmLENBQUMsQ0FDSCxDQUNGO0FBRUEsTUFBYSx3Q0FBd0MsaUJBQ25ELFVBQ0UsRUFBRSxPQUFPO0NBQ1AsSUFBSSxFQUFFLE9BQU87Q0FDYixRQUFRLEVBQUUsS0FBSztFQUFDO0VBQWdCO0VBQWE7Q0FBUSxDQUFDO0NBQ3RELE9BQU8sRUFDSixPQUFPO0VBQ04sTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLE9BQU8sR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRO0VBQ2hELFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRO0NBQzlCLENBQUMsQ0FBQyxDQUNELFFBQVE7Q0FDWCxTQUFTLEVBQ04sT0FBTyxFQUNOLFlBQVksRUFBRSxNQUNaLEVBQUUsT0FBTztFQUNQLFVBQVUsRUFBRSxPQUFPO0VBQ25CLFVBQVUsRUFBRSxPQUFPO0VBQ25CLEtBQUssRUFBRSxPQUFPO0VBQ2QsS0FBSyxFQUFFLE9BQU87RUFDZCxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsU0FBUztDQUM1QixDQUFDLENBQ0gsRUFDRixDQUFDLENBQUMsQ0FDRCxRQUFRO0FBQ2IsQ0FBQyxDQUNILENBQ0YifQ==
@@ -2,7 +2,7 @@ import { init_runtime_value, isStringValue } from "../../../utils/runtime-value.
2
2
  import { extractResponseHeaders, safeParseJSON, zodSchema } from "@ai-sdk/provider-utils";
3
3
  import { z } from "zod";
4
4
  import { AISDKError, APICallError } from "@ai-sdk/provider";
5
- //#region src/ai/providers/rtzr/error.ts
5
+ // src/ai/providers/rtzr/error.ts
6
6
  init_runtime_value();
7
7
  const rtzrFlatErrorDataSchema = z.object({
8
8
  code: z.union([z.string(), z.number()]).nullish(),
@@ -86,7 +86,6 @@ var RtzrClientError = class extends AISDKError {
86
86
  });
87
87
  }
88
88
  };
89
- //#endregion
90
89
  export { RtzrClientError, formatRtzrErrorData, formatRtzrErrorResponseBody, rtzrErrorDataSchema, rtzrFailedResponseHandler };
91
90
 
92
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FpL3Byb3ZpZGVycy9ydHpyL2Vycm9yLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFJU0RLRXJyb3IsIEFQSUNhbGxFcnJvciB9IGZyb20gXCJAYWktc2RrL3Byb3ZpZGVyXCI7XG5pbXBvcnQgeyBleHRyYWN0UmVzcG9uc2VIZWFkZXJzLCBzYWZlUGFyc2VKU09OLCB6b2RTY2hlbWEgfSBmcm9tIFwiQGFpLXNkay9wcm92aWRlci11dGlsc1wiO1xuaW1wb3J0IHsgdHlwZSBSZXNwb25zZUhhbmRsZXIgfSBmcm9tIFwiQGFpLXNkay9wcm92aWRlci11dGlsc1wiO1xuaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIjtcblxuaW1wb3J0IHsgaXNTdHJpbmdWYWx1ZSB9IGZyb20gXCIuLi8uLi8uLi91dGlscy9ydW50aW1lLXZhbHVlXCI7XG5cbmNvbnN0IHJ0enJGbGF0RXJyb3JEYXRhU2NoZW1hID0gei5vYmplY3Qoe1xuICBjb2RlOiB6LnVuaW9uKFt6LnN0cmluZygpLCB6Lm51bWJlcigpXSkubnVsbGlzaCgpLFxuICBtc2c6IHouc3RyaW5nKCkubnVsbGlzaCgpLFxuICB0eXBlOiB6LnN0cmluZygpLm51bGxpc2goKSxcbiAgcGFyYW06IHoudW5rbm93bigpLm51bGxpc2goKSxcbn0pO1xuXG5jb25zdCBydHpyTmVzdGVkRXJyb3JEYXRhU2NoZW1hID0gei5vYmplY3Qoe1xuICBlcnJvcjogei5vYmplY3Qoe1xuICAgIG1zZzogei5zdHJpbmcoKS5udWxsaXNoKCksXG4gICAgbWVzc2FnZTogei5zdHJpbmcoKS5udWxsaXNoKCksXG4gICAgdHlwZTogei5zdHJpbmcoKS5udWxsaXNoKCksXG4gICAgcGFyYW06IHoudW5rbm93bigpLm51bGxpc2goKSxcbiAgICBjb2RlOiB6LnVuaW9uKFt6LnN0cmluZygpLCB6Lm51bWJlcigpXSkubnVsbGlzaCgpLFxuICB9KSxcbn0pO1xuXG4vLyBSVFpSIHJldHVybnMgZmxhdCBIVFRQIGVycm9ycywgYnV0IGFzeW5jIHRyYW5zY3JpcHRpb24gZmFpbHVyZXMgd3JhcCBkZXRhaWxzIGluIGVycm9yLlxuZXhwb3J0IGNvbnN0IHJ0enJFcnJvckRhdGFTY2hlbWEgPSB6LnVuaW9uKFtydHpyRmxhdEVycm9yRGF0YVNjaGVtYSwgcnR6ck5lc3RlZEVycm9yRGF0YVNjaGVtYV0pO1xuXG5leHBvcnQgdHlwZSBSdHpyRXJyb3JEYXRhID0gei5pbmZlcjx0eXBlb2YgcnR6ckVycm9yRGF0YVNjaGVtYT47XG5cbnR5cGUgTm9ybWFsaXplZFJ0enJFcnJvciA9IHtcbiAgY29kZT86IHN0cmluZyB8IG51bWJlciB8IG51bGw7XG4gIG1lc3NhZ2U/OiBzdHJpbmcgfCBudWxsO1xuICBtc2c/OiBzdHJpbmcgfCBudWxsO1xuICB0eXBlPzogc3RyaW5nIHwgbnVsbDtcbiAgcGFyYW0/OiB1bmtub3duO1xufTtcblxuZnVuY3Rpb24gaXNOdWxsaXNoPFZhbHVlPih2YWx1ZTogVmFsdWUpOiB2YWx1ZSBpcyBWYWx1ZSAmIChudWxsIHwgdW5kZWZpbmVkKSB7XG4gIHJldHVybiB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBub3JtYWxpemVSdHpyRXJyb3JEYXRhKGRhdGE6IFJ0enJFcnJvckRhdGEpOiBOb3JtYWxpemVkUnR6ckVycm9yIHtcbiAgaWYgKFwiZXJyb3JcIiBpbiBkYXRhKSB7XG4gICAgcmV0dXJuIGRhdGEuZXJyb3I7XG4gIH1cblxuICByZXR1cm4gZGF0YTtcbn1cblxuZnVuY3Rpb24gZm9ybWF0UGFyYW08VmFsdWU+KHBhcmFtOiBWYWx1ZSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGlmIChpc051bGxpc2gocGFyYW0pKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGlmIChpc1N0cmluZ1ZhbHVlKHBhcmFtKSkge1xuICAgIHJldHVybiBwYXJhbTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHBhcmFtKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIFN0cmluZyhwYXJhbSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFJ0enJFcnJvckRhdGEoZGF0YTogUnR6ckVycm9yRGF0YSk6IHN0cmluZyB7XG4gIGNvbnN0IGVycm9yID0gbm9ybWFsaXplUnR6ckVycm9yRGF0YShkYXRhKTtcbiAgY29uc3QgcGFyYW0gPSBmb3JtYXRQYXJhbShlcnJvci5wYXJhbSk7XG4gIGNvbnN0IHBhcnRzID0gW1xuICAgIGlzTnVsbGlzaChlcnJvci5jb2RlKSA/IHVuZGVmaW5lZCA6IGBjb2RlICR7ZXJyb3IuY29kZX1gLFxuICAgIGlzTnVsbGlzaChlcnJvci50eXBlKSA/IHVuZGVmaW5lZCA6IGB0eXBlICR7ZXJyb3IudHlwZX1gLFxuICAgIGlzTnVsbGlzaChwYXJhbSkgPyB1bmRlZmluZWQgOiBgcGFyYW0gJHtwYXJhbX1gLFxuICBdLmZpbHRlcigoaXRlbSk6IGl0ZW0gaXMgc3RyaW5nID0+ICFpc051bGxpc2goaXRlbSkgJiYgaXRlbS5sZW5ndGggPiAwKTtcbiAgY29uc3QgbWVzc2FnZSA9IGVycm9yLm1zZyA/PyBlcnJvci5tZXNzYWdlO1xuXG4gIGlmICghaXNOdWxsaXNoKG1lc3NhZ2UpICYmIG1lc3NhZ2UubGVuZ3RoID4gMCkge1xuICAgIHJldHVybiBbLi4ucGFydHMsIG1lc3NhZ2VdLmpvaW4oXCI6IFwiKTtcbiAgfVxuXG4gIGlmIChwYXJ0cy5sZW5ndGggPiAwKSB7XG4gICAgcmV0dXJuIHBhcnRzLmpvaW4oXCI6IFwiKTtcbiAgfVxuXG4gIHJldHVybiBcInVua25vd24gUlRaUiBlcnJvclwiO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZm9ybWF0UnR6ckVycm9yUmVzcG9uc2VCb2R5KFxuICByZXNwb25zZUJvZHk6IHN0cmluZyxcbik6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gIGlmIChyZXNwb25zZUJvZHkudHJpbSgpLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBwYXJzZWRFcnJvciA9IGF3YWl0IHNhZmVQYXJzZUpTT04oe1xuICAgIHRleHQ6IHJlc3BvbnNlQm9keSxcbiAgICBzY2hlbWE6IHpvZFNjaGVtYShydHpyRXJyb3JEYXRhU2NoZW1hKSxcbiAgfSk7XG5cbiAgaWYgKCFwYXJzZWRFcnJvci5zdWNjZXNzKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHJldHVybiBmb3JtYXRSdHpyRXJyb3JEYXRhKHBhcnNlZEVycm9yLnZhbHVlKTtcbn1cblxuZXhwb3J0IGNvbnN0IHJ0enJGYWlsZWRSZXNwb25zZUhhbmRsZXI6IFJlc3BvbnNlSGFuZGxlcjxBUElDYWxsRXJyb3I+ID0gYXN5bmMgKHtcbiAgcmVzcG9uc2UsXG4gIHVybCxcbiAgcmVxdWVzdEJvZHlWYWx1ZXMsXG59KSA9PiB7XG4gIGNvbnN0IHJlc3BvbnNlQm9keSA9IGF3YWl0IHJlc3BvbnNlLnRleHQoKTtcbiAgY29uc3QgcmVzcG9uc2VIZWFkZXJzID0gZXh0cmFjdFJlc3BvbnNlSGVhZGVycyhyZXNwb25zZSk7XG4gIGNvbnN0IGRldGFpbCA9XG4gICAgKGF3YWl0IGZvcm1hdFJ0enJFcnJvclJlc3BvbnNlQm9keShyZXNwb25zZUJvZHkpKSA/P1xuICAgIHJlc3BvbnNlLnN0YXR1c1RleHQgPz9cbiAgICBcInVucGFyc2VhYmxlIFJUWlIgZXJyb3IgcmVzcG9uc2VcIjtcbiAgY29uc3QgcGFyc2VkRXJyb3IgPSBhd2FpdCBzYWZlUGFyc2VKU09OKHtcbiAgICB0ZXh0OiByZXNwb25zZUJvZHksXG4gICAgc2NoZW1hOiB6b2RTY2hlbWEocnR6ckVycm9yRGF0YVNjaGVtYSksXG4gIH0pO1xuXG4gIHJldHVybiB7XG4gICAgcmVzcG9uc2VIZWFkZXJzLFxuICAgIHZhbHVlOiBuZXcgQVBJQ2FsbEVycm9yKHtcbiAgICAgIG1lc3NhZ2U6IGBIVFRQICR7cmVzcG9uc2Uuc3RhdHVzfTogJHtkZXRhaWx9YCxcbiAgICAgIHVybCxcbiAgICAgIHJlcXVlc3RCb2R5VmFsdWVzLFxuICAgICAgc3RhdHVzQ29kZTogcmVzcG9uc2Uuc3RhdHVzLFxuICAgICAgcmVzcG9uc2VIZWFkZXJzLFxuICAgICAgcmVzcG9uc2VCb2R5LFxuICAgICAgZGF0YTogcGFyc2VkRXJyb3Iuc3VjY2VzcyA/IHBhcnNlZEVycm9yLnZhbHVlIDogdW5kZWZpbmVkLFxuICAgIH0pLFxuICB9O1xufTtcblxuZXhwb3J0IGNsYXNzIFJ0enJDbGllbnRFcnJvciBleHRlbmRzIEFJU0RLRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IHtcbiAgICAgIGNhdXNlPzogRXJyb3I7XG4gICAgfSxcbiAgKSB7XG4gICAgc3VwZXIoe1xuICAgICAgbmFtZTogXCJSdHpyQ2xpZW50RXJyb3JcIixcbiAgICAgIG1lc3NhZ2UsXG4gICAgICBjYXVzZTogb3B0aW9ucz8uY2F1c2UsXG4gICAgfSk7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7bUJBSzREO0FBRTVELE1BQU0sMEJBQTBCLEVBQUUsT0FBTztDQUN2QyxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQUUsT0FBTyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVE7Q0FDaEQsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVE7Q0FDeEIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVE7Q0FDekIsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDLFFBQVE7QUFDN0IsQ0FBQztBQUVELE1BQU0sNEJBQTRCLEVBQUUsT0FBTyxFQUN6QyxPQUFPLEVBQUUsT0FBTztDQUNkLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRO0NBQ3hCLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRO0NBQzVCLE1BQU0sRUFBRSxPQUFPLENB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
91
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FpL3Byb3ZpZGVycy9ydHpyL2Vycm9yLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFJU0RLRXJyb3IsIEFQSUNhbGxFcnJvciB9IGZyb20gXCJAYWktc2RrL3Byb3ZpZGVyXCI7XG5pbXBvcnQgeyBleHRyYWN0UmVzcG9uc2VIZWFkZXJzLCBzYWZlUGFyc2VKU09OLCB6b2RTY2hlbWEgfSBmcm9tIFwiQGFpLXNkay9wcm92aWRlci11dGlsc1wiO1xuaW1wb3J0IHsgdHlwZSBSZXNwb25zZUhhbmRsZXIgfSBmcm9tIFwiQGFpLXNkay9wcm92aWRlci11dGlsc1wiO1xuaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIjtcblxuaW1wb3J0IHsgaXNTdHJpbmdWYWx1ZSB9IGZyb20gXCIuLi8uLi8uLi91dGlscy9ydW50aW1lLXZhbHVlXCI7XG5cbmNvbnN0IHJ0enJGbGF0RXJyb3JEYXRhU2NoZW1hID0gei5vYmplY3Qoe1xuICBjb2RlOiB6LnVuaW9uKFt6LnN0cmluZygpLCB6Lm51bWJlcigpXSkubnVsbGlzaCgpLFxuICBtc2c6IHouc3RyaW5nKCkubnVsbGlzaCgpLFxuICB0eXBlOiB6LnN0cmluZygpLm51bGxpc2goKSxcbiAgcGFyYW06IHoudW5rbm93bigpLm51bGxpc2goKSxcbn0pO1xuXG5jb25zdCBydHpyTmVzdGVkRXJyb3JEYXRhU2NoZW1hID0gei5vYmplY3Qoe1xuICBlcnJvcjogei5vYmplY3Qoe1xuICAgIG1zZzogei5zdHJpbmcoKS5udWxsaXNoKCksXG4gICAgbWVzc2FnZTogei5zdHJpbmcoKS5udWxsaXNoKCksXG4gICAgdHlwZTogei5zdHJpbmcoKS5udWxsaXNoKCksXG4gICAgcGFyYW06IHoudW5rbm93bigpLm51bGxpc2goKSxcbiAgICBjb2RlOiB6LnVuaW9uKFt6LnN0cmluZygpLCB6Lm51bWJlcigpXSkubnVsbGlzaCgpLFxuICB9KSxcbn0pO1xuXG4vLyBSVFpSIHJldHVybnMgZmxhdCBIVFRQIGVycm9ycywgYnV0IGFzeW5jIHRyYW5zY3JpcHRpb24gZmFpbHVyZXMgd3JhcCBkZXRhaWxzIGluIGVycm9yLlxuZXhwb3J0IGNvbnN0IHJ0enJFcnJvckRhdGFTY2hlbWEgPSB6LnVuaW9uKFtydHpyRmxhdEVycm9yRGF0YVNjaGVtYSwgcnR6ck5lc3RlZEVycm9yRGF0YVNjaGVtYV0pO1xuXG5leHBvcnQgdHlwZSBSdHpyRXJyb3JEYXRhID0gei5pbmZlcjx0eXBlb2YgcnR6ckVycm9yRGF0YVNjaGVtYT47XG5cbnR5cGUgTm9ybWFsaXplZFJ0enJFcnJvciA9IHtcbiAgY29kZT86IHN0cmluZyB8IG51bWJlciB8IG51bGw7XG4gIG1lc3NhZ2U/OiBzdHJpbmcgfCBudWxsO1xuICBtc2c/OiBzdHJpbmcgfCBudWxsO1xuICB0eXBlPzogc3RyaW5nIHwgbnVsbDtcbiAgcGFyYW0/OiB1bmtub3duO1xufTtcblxuZnVuY3Rpb24gaXNOdWxsaXNoPFZhbHVlPih2YWx1ZTogVmFsdWUpOiB2YWx1ZSBpcyBWYWx1ZSAmIChudWxsIHwgdW5kZWZpbmVkKSB7XG4gIHJldHVybiB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBub3JtYWxpemVSdHpyRXJyb3JEYXRhKGRhdGE6IFJ0enJFcnJvckRhdGEpOiBOb3JtYWxpemVkUnR6ckVycm9yIHtcbiAgaWYgKFwiZXJyb3JcIiBpbiBkYXRhKSB7XG4gICAgcmV0dXJuIGRhdGEuZXJyb3I7XG4gIH1cblxuICByZXR1cm4gZGF0YTtcbn1cblxuZnVuY3Rpb24gZm9ybWF0UGFyYW08VmFsdWU+KHBhcmFtOiBWYWx1ZSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGlmIChpc051bGxpc2gocGFyYW0pKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGlmIChpc1N0cmluZ1ZhbHVlKHBhcmFtKSkge1xuICAgIHJldHVybiBwYXJhbTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHBhcmFtKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIFN0cmluZyhwYXJhbSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFJ0enJFcnJvckRhdGEoZGF0YTogUnR6ckVycm9yRGF0YSk6IHN0cmluZyB7XG4gIGNvbnN0IGVycm9yID0gbm9ybWFsaXplUnR6ckVycm9yRGF0YShkYXRhKTtcbiAgY29uc3QgcGFyYW0gPSBmb3JtYXRQYXJhbShlcnJvci5wYXJhbSk7XG4gIGNvbnN0IHBhcnRzID0gW1xuICAgIGlzTnVsbGlzaChlcnJvci5jb2RlKSA/IHVuZGVmaW5lZCA6IGBjb2RlICR7ZXJyb3IuY29kZX1gLFxuICAgIGlzTnVsbGlzaChlcnJvci50eXBlKSA/IHVuZGVmaW5lZCA6IGB0eXBlICR7ZXJyb3IudHlwZX1gLFxuICAgIGlzTnVsbGlzaChwYXJhbSkgPyB1bmRlZmluZWQgOiBgcGFyYW0gJHtwYXJhbX1gLFxuICBdLmZpbHRlcigoaXRlbSk6IGl0ZW0gaXMgc3RyaW5nID0+ICFpc051bGxpc2goaXRlbSkgJiYgaXRlbS5sZW5ndGggPiAwKTtcbiAgY29uc3QgbWVzc2FnZSA9IGVycm9yLm1zZyA/PyBlcnJvci5tZXNzYWdlO1xuXG4gIGlmICghaXNOdWxsaXNoKG1lc3NhZ2UpICYmIG1lc3NhZ2UubGVuZ3RoID4gMCkge1xuICAgIHJldHVybiBbLi4ucGFydHMsIG1lc3NhZ2VdLmpvaW4oXCI6IFwiKTtcbiAgfVxuXG4gIGlmIChwYXJ0cy5sZW5ndGggPiAwKSB7XG4gICAgcmV0dXJuIHBhcnRzLmpvaW4oXCI6IFwiKTtcbiAgfVxuXG4gIHJldHVybiBcInVua25vd24gUlRaUiBlcnJvclwiO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZm9ybWF0UnR6ckVycm9yUmVzcG9uc2VCb2R5KFxuICByZXNwb25zZUJvZHk6IHN0cmluZyxcbik6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gIGlmIChyZXNwb25zZUJvZHkudHJpbSgpLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBwYXJzZWRFcnJvciA9IGF3YWl0IHNhZmVQYXJzZUpTT04oe1xuICAgIHRleHQ6IHJlc3BvbnNlQm9keSxcbiAgICBzY2hlbWE6IHpvZFNjaGVtYShydHpyRXJyb3JEYXRhU2NoZW1hKSxcbiAgfSk7XG5cbiAgaWYgKCFwYXJzZWRFcnJvci5zdWNjZXNzKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHJldHVybiBmb3JtYXRSdHpyRXJyb3JEYXRhKHBhcnNlZEVycm9yLnZhbHVlKTtcbn1cblxuZXhwb3J0IGNvbnN0IHJ0enJGYWlsZWRSZXNwb25zZUhhbmRsZXI6IFJlc3BvbnNlSGFuZGxlcjxBUElDYWxsRXJyb3I+ID0gYXN5bmMgKHtcbiAgcmVzcG9uc2UsXG4gIHVybCxcbiAgcmVxdWVzdEJvZHlWYWx1ZXMsXG59KSA9PiB7XG4gIGNvbnN0IHJlc3BvbnNlQm9keSA9IGF3YWl0IHJlc3BvbnNlLnRleHQoKTtcbiAgY29uc3QgcmVzcG9uc2VIZWFkZXJzID0gZXh0cmFjdFJlc3BvbnNlSGVhZGVycyhyZXNwb25zZSk7XG4gIGNvbnN0IGRldGFpbCA9XG4gICAgKGF3YWl0IGZvcm1hdFJ0enJFcnJvclJlc3BvbnNlQm9keShyZXNwb25zZUJvZHkpKSA/P1xuICAgIHJlc3BvbnNlLnN0YXR1c1RleHQgPz9cbiAgICBcInVucGFyc2VhYmxlIFJUWlIgZXJyb3IgcmVzcG9uc2VcIjtcbiAgY29uc3QgcGFyc2VkRXJyb3IgPSBhd2FpdCBzYWZlUGFyc2VKU09OKHtcbiAgICB0ZXh0OiByZXNwb25zZUJvZHksXG4gICAgc2NoZW1hOiB6b2RTY2hlbWEocnR6ckVycm9yRGF0YVNjaGVtYSksXG4gIH0pO1xuXG4gIHJldHVybiB7XG4gICAgcmVzcG9uc2VIZWFkZXJzLFxuICAgIHZhbHVlOiBuZXcgQVBJQ2FsbEVycm9yKHtcbiAgICAgIG1lc3NhZ2U6IGBIVFRQICR7cmVzcG9uc2Uuc3RhdHVzfTogJHtkZXRhaWx9YCxcbiAgICAgIHVybCxcbiAgICAgIHJlcXVlc3RCb2R5VmFsdWVzLFxuICAgICAgc3RhdHVzQ29kZTogcmVzcG9uc2Uuc3RhdHVzLFxuICAgICAgcmVzcG9uc2VIZWFkZXJzLFxuICAgICAgcmVzcG9uc2VCb2R5LFxuICAgICAgZGF0YTogcGFyc2VkRXJyb3Iuc3VjY2VzcyA/IHBhcnNlZEVycm9yLnZhbHVlIDogdW5kZWZpbmVkLFxuICAgIH0pLFxuICB9O1xufTtcblxuZXhwb3J0IGNsYXNzIFJ0enJDbGllbnRFcnJvciBleHRlbmRzIEFJU0RLRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IHtcbiAgICAgIGNhdXNlPzogRXJyb3I7XG4gICAgfSxcbiAgKSB7XG4gICAgc3VwZXIoe1xuICAgICAgbmFtZTogXCJSdHpyQ2xpZW50RXJyb3JcIixcbiAgICAgIG1lc3NhZ2UsXG4gICAgICBjYXVzZTogb3B0aW9ucz8uY2F1c2UsXG4gICAgfSk7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFLNEQsbUJBQUE7QUFFNUQsTUFBTSwwQkFBMEIsRUFBRSxPQUFPO0NBQ3ZDLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxPQUFPLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUTtDQUNoRCxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUTtDQUN4QixNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUTtDQUN6QixPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUMsUUFBUTtBQUM3QixDQUFDO0FBRUQsTUFBTSw0QkFBNEIsRUFBRSxPQUFPLEVBQ3pDLE9BQU8sRUFBRSxPQUFPO0NBQ2QsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVE7Q0FDeEIsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVE7Q0FDNUIsTUFBTSxFQUFFLE9B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
@@ -3,7 +3,7 @@ import { RtzrClientError, formatRtzrErrorData, formatRtzrErrorResponseBody, rtzr
3
3
  import { rtzrTranscriptionProviderOptions } from "./options.js";
4
4
  import { combineHeaders, convertBase64ToUint8Array, createJsonResponseHandler, getFromApi, mediaTypeToExtension, parseProviderOptions, postFormDataToApi, safeParseJSON, zodSchema } from "@ai-sdk/provider-utils";
5
5
  import { isEmpty } from "radashi";
6
- //#region src/ai/providers/rtzr/model.ts
6
+ // src/ai/providers/rtzr/model.ts
7
7
  function isNullish(value) {
8
8
  return value === null || value === void 0;
9
9
  }
@@ -120,7 +120,6 @@ var RtzrTranscriptionModel = class {
120
120
  };
121
121
  }
122
122
  };
123
- //#endregion
124
123
  export { RtzrTranscriptionModel };
125
124
 
126
125
  //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FpL3Byb3ZpZGVycy9ydHpyL21vZGVsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIHR5cGUgU2hhcmVkVjNXYXJuaW5nLFxuICB0eXBlIFRyYW5zY3JpcHRpb25Nb2RlbFYzLFxuICB0eXBlIFRyYW5zY3JpcHRpb25Nb2RlbFYzQ2FsbE9wdGlvbnMsXG59IGZyb20gXCJAYWktc2RrL3Byb3ZpZGVyXCI7XG5pbXBvcnQge1xuICBjb21iaW5lSGVhZGVycyxcbiAgY29udmVydEJhc2U2NFRvVWludDhBcnJheSxcbiAgY3JlYXRlSnNvblJlc3BvbnNlSGFuZGxlcixcbiAgZ2V0RnJvbUFwaSxcbiAgbWVkaWFUeXBlVG9FeHRlbnNpb24sXG4gIHBhcnNlUHJvdmlkZXJPcHRpb25zLFxuICBwb3N0Rm9ybURhdGFUb0FwaSxcbiAgc2FmZVBhcnNlSlNPTixcbiAgem9kU2NoZW1hLFxufSBmcm9tIFwiQGFpLXNkay9wcm92aWRlci11dGlsc1wiO1xuaW1wb3J0IHsgdHlwZSBGZXRjaEZ1bmN0aW9uIH0gZnJvbSBcIkBhaS1zZGsvcHJvdmlkZXItdXRpbHNcIjtcbmltcG9ydCB7IGlzRW1wdHkgfSBmcm9tIFwicmFkYXNoaVwiO1xuXG5pbXBvcnQge1xuICBydHpyQXV0aFJlc3BvbnNlU2NoZW1hLFxuICBydHpyVHJhbnNjcmlwdGlvblJlc3BvbnNlU2NoZW1hLFxuICBydHpyVHJhbnNjcmlwdGlvblJlc3VsdFJlc3BvbnNlU2NoZW1hLFxufSBmcm9tIFwiLi9hcGlcIjtcbmltcG9ydCB7XG4gIGZvcm1hdFJ0enJFcnJvckRhdGEsXG4gIGZvcm1hdFJ0enJFcnJvclJlc3BvbnNlQm9keSxcbiAgUnR6ckNsaWVudEVycm9yLFxuICBydHpyRmFpbGVkUmVzcG9uc2VIYW5kbGVyLFxufSBmcm9tIFwiLi9lcnJvclwiO1xuaW1wb3J0IHsgcnR6clRyYW5zY3JpcHRpb25Qcm92aWRlck9wdGlvbnMgfSBmcm9tIFwiLi9vcHRpb25zXCI7XG5pbXBvcnQgeyB0eXBlIFJ0enJUcmFuc2NyaXB0aW9uTW9kZWxJZCwgdHlwZSBSdHpyVHJhbnNjcmlwdGlvblByb3ZpZGVyT3B0aW9ucyB9IGZyb20gXCIuL29wdGlvbnNcIjtcblxuZnVuY3Rpb24gaXNOdWxsaXNoPFZhbHVlPih2YWx1ZTogVmFsdWUpOiB2YWx1ZSBpcyBWYWx1ZSAmIChudWxsIHwgdW5kZWZpbmVkKSB7XG4gIHJldHVybiB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgdHlwZSBSdHpyVHJhbnNjcmlwdGlvbkNhbGxPcHRpb25zID0gT21pdDxcbiAgVHJhbnNjcmlwdGlvbk1vZGVsVjNDYWxsT3B0aW9ucyxcbiAgXCJwcm92aWRlck9wdGlvbnNcIlxuPiAmIHtcbiAgcHJvdmlkZXJPcHRpb25zPzoge1xuICAgIHJ0enI/OiBSdHpyVHJhbnNjcmlwdGlvblByb3ZpZGVyT3B0aW9ucztcbiAgfTtcbn07XG5cbmludGVyZmFjZSBSdHpyVHJhbnNjcmlwdGlvbk1vZGVsQ29uZmlnIHtcbiAgX2ludGVybmFsPzoge1xuICAgIGN1cnJlbnREYXRlPzogKCkgPT4gRGF0ZTtcbiAgfTtcbiAgcHJvdmlkZXI6IHN0cmluZztcbiAgYXV0aDoge1xuICAgIGNsaWVudElkOiBzdHJpbmc7XG4gICAgY2xpZW50U2VjcmV0OiBzdHJpbmc7XG4gIH07XG4gIHVybDogKG9wdGlvbnM6IHsgcGF0aDogc3RyaW5nIH0pID0+IHN0cmluZztcbiAgaGVhZGVyczogKCkgPT4gUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPjtcbiAgZmV0Y2g/OiBGZXRjaEZ1bmN0aW9uO1xuICBnZW5lcmF0ZUlkPzogKCkgPT4gc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgUnR6clRyYW5zY3JpcHRpb25Nb2RlbCBpbXBsZW1lbnRzIFRyYW5zY3JpcHRpb25Nb2RlbFYzIHtcbiAgcmVhZG9ubHkgc3BlY2lmaWNhdGlvblZlcnNpb24gPSBcInYzXCI7XG5cbiAgZ2V0IHByb3ZpZGVyKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnByb3ZpZGVyO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcmVhZG9ubHkgbW9kZWxJZDogUnR6clRyYW5zY3JpcHRpb25Nb2RlbElkLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnOiBSdHpyVHJhbnNjcmlwdGlvbk1vZGVsQ29uZmlnLFxuICApIHt9XG5cbiAgcHJpdmF0ZSBhc3luYyBhdXRob3JpemUoKSB7XG4gICAgY29uc3QgZmV0Y2hBcGkgPSB0aGlzLmNvbmZpZy5mZXRjaCA/PyBmZXRjaDtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoQXBpKFxuICAgICAgdGhpcy5jb25maWcudXJsKHtcbiAgICAgICAgcGF0aDogXCIvYXV0aGVudGljYXRlXCIsXG4gICAgICB9KSxcbiAgICAgIHtcbiAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCIsXG4gICAgICAgIH0sXG4gICAgICAgIGJvZHk6IG5ldyBVUkxTZWFyY2hQYXJhbXMoe1xuICAgICAgICAgIGNsaWVudF9pZDogdGhpcy5jb25maWcuYXV0aC5jbGllbnRJZCxcbiAgICAgICAgICBjbGllbnRfc2VjcmV0OiB0aGlzLmNvbmZpZy5hdXRoLmNsaWVudFNlY3JldCxcbiAgICAgICAgfSksXG4gICAgICB9LFxuICAgICk7XG5cbiAgICBjb25zdCByZXNwb25zZUJvZHkgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7XG4gICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgY29uc3QgZGV0YWlsID0gYXdhaXQgZm9ybWF0UnR6ckVycm9yUmVzcG9uc2VCb2R5KHJlc3BvbnNlQm9keSk7XG4gICAgICB0aHJvdyBuZXcgUnR6ckNsaWVudEVycm9yKFxuICAgICAgICBgRmFpbGVkIHRvIGF1dGhvcml6ZSBSVFpSOiBIVFRQICR7cmVzcG9uc2Uuc3RhdHVzfSR7XG4gICAgICAgICAgaXNOdWxsaXNoKGRldGFpbCkgPyBcIlwiIDogYDogJHtkZXRhaWx9YFxuICAgICAgICB9YCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgcGFyc2VkRGF0YSA9IGF3YWl0IHNhZmVQYXJzZUpTT04oe1xuICAgICAgdGV4dDogcmVzcG9uc2VCb2R5LFxuICAgICAgc2NoZW1hOiB6b2RTY2hlbWEocnR6ckF1dGhSZXNwb25zZVNjaGVtYSksXG4gICAgfSk7XG4gICAgaWYgKCFwYXJzZWREYXRhLnN1Y2Nlc3MpIHtcbiAgICAgIHRocm93IG5ldyBSdHpyQ2xpZW50RXJyb3IoYEludmFsaWQgUlRaUiBhdXRoIHJlc3BvbnNlOiAke3BhcnNlZERhdGEuZXJyb3IubWVzc2FnZX1gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGFyc2VkRGF0YS52YWx1ZS5hY2Nlc3NfdG9rZW47XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldEFyZ3MoeyBhdWRpbywgbWVkaWFUeXBlLCBwcm92aWRlck9wdGlvbnMgfTogUnR6clRyYW5zY3JpcHRpb25DYWxsT3B0aW9ucykge1xuICAgIGNvbnN0IHdhcm5pbmdzOiBTaGFyZWRWM1dhcm5pbmdbXSA9IFtdO1xuICAgIGNvbnN0IHJ0enJPcHRpb25zID0gYXdhaXQgcGFyc2VQcm92aWRlck9wdGlvbnMoe1xuICAgICAgcHJvdmlkZXI6IFwicnR6clwiLFxuICAgICAgcHJvdmlkZXJPcHRpb25zLFxuICAgICAgc2NoZW1hOiBydHpyVHJhbnNjcmlwdGlvblByb3ZpZGVyT3B0aW9ucyxcbiAgICB9KTtcblxuICAgIGNvbnN0IGJsb2IgPVxuICAgICAgYXVkaW8gaW5zdGFuY2VvZiBVaW50OEFycmF5XG4gICAgICAgID8gbmV3IEJsb2IoW25ldyBVaW50OEFycmF5KGF1ZGlvKV0pXG4gICAgICAgIDogbmV3IEJsb2IoW2NvbnZlcnRCYXNlNjRUb1VpbnQ4QXJyYXkoYXVkaW8pXSk7XG5cbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGNvbnN0IGZpbGVFeHRlbnNpb24gPSBtZWRpYVR5cGVUb0V4dGVuc2lvbihtZWRpYVR5cGUpO1xuICAgIGZvcm1EYXRhLmFwcGVuZChcbiAgICAgIFwiZmlsZVwiLFxuICAgICAgbmV3IEZpbGUoW2Jsb2JdLCBcImF1ZGlvXCIsIHsgdHlwZTogbWVkaWFUeXBlIH0pLFxuICAgICAgYGF1ZGlvLiR7ZmlsZUV4dGVuc2lvbn1gLFxuICAgICk7XG5cbiAgICBjb25zdCBjb25maWcgPSB7IG1vZGVsX25hbWU6IHRoaXMubW9kZWxJZCwgLi4ucnR6ck9wdGlvbnMgfTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoXCJjb25maWdcIiwgSlNPTi5zdHJpbmdpZnkoY29uZmlnKSk7XG5cbiAgICByZXR1cm4geyBmb3JtRGF0YSwgd2FybmluZ3MgfTtcbiAgfVxuXG4gIGFzeW5jIGRvR2VuZXJhdGUob3B0aW9uczogUnR6clRyYW5zY3JpcHRpb25DYWxsT3B0aW9ucykge1xuICAgIGNvbnN0IHsgX2ludGVybmFsOiBpbnRlcm5hbENvbmZpZyB9ID0gdGhpcy5jb25maWc7XG4gICAgY29uc3QgY3VycmVudERhdGUgPSBpbnRlcm5hbENvbmZpZz8uY3VycmVudERhdGU/LigpID8/IG5ldyBEYXRlKCk7XG5cbiAgICBjb25zdCBhY2Nlc3NUb2tlbiA9IGF3YWl0IHRoaXMuYXV0aG9yaXplKCk7XG4gICAgY29uc3QgaGVhZGVycyA9IHtcbiAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHthY2Nlc3NUb2tlbn1gLFxuICAgICAgLi4ub3B0aW9ucy5oZWFkZXJzLFxuICAgIH07XG5cbiAgICBjb25zdCB7IGZvcm1EYXRhLCB3YXJuaW5ncyB9ID0gYXdhaXQgdGhpcy5nZXRBcmdzKG9wdGlvbnMpO1xuICAgIGNvbnN0IHtcbiAgICAgIHZhbHVlOiB7IGlkOiB0cmFuc2NyaXB0aW9uSWQgfSxcbiAgICAgIHJlc3BvbnNlSGVhZGVycyxcbiAgICB9ID0gYXdhaXQgcG9zdEZvcm1EYXRhVG9BcGkoe1xuICAgICAgdXJsOiB0aGlzLmNvbmZpZy51cmwoe1xuICAgICAgICBwYXRoOiBcIi90cmFuc2NyaWJlXCIsXG4gICAgICB9KSxcbiAgICAgIGhlYWRlcnM6IGNvbWJpbmVIZWFkZXJzKHRoaXMuY29uZmlnLmhlYWRlcnMoKSwgaGVhZGVycyksXG4gICAgICBmb3JtRGF0YSxcbiAgICAgIGZhaWxlZFJlc3BvbnNlSGFuZGxlcjogcnR6ckZhaWxlZFJlc3BvbnNlSGFuZGxlcixcbiAgICAgIHN1Y2Nlc3NmdWxSZXNwb25zZUhhbmRsZXI6IGNyZWF0ZUpzb25SZXNwb25zZUhhbmRsZXIocnR6clRyYW5zY3JpcHRpb25SZXNwb25zZVNjaGVtYSksXG4gICAgICBhYm9ydFNpZ25hbDogb3B0aW9ucy5hYm9ydFNpZ25hbCxcbiAgICAgIGZldGNoOiB0aGlzLmNvbmZpZy5mZXRjaCxcbiAgICB9KTtcblxuICAgIGNvbnN0IHsgdmFsdWU6IHJlc3BvbnNlLCByYXdWYWx1ZSB9ID0gYXdhaXQgKGFzeW5jICgpID0+IHtcbiAgICAgIC8vIHRyYW5zY3JpcHRpb27snbQg64Gd64KgIOuVjOq5jOyngCBSVFpSIOq2jOyepSDqsITqsqnsnbggNey0iOuniOuLpCDssrTtgawuXG4gICAgICAvLyB0aW1lb3V07J2EIOuUsOuhnCDsp4DsoJXtlZjsp4Ag7JWK64qUIOydtOycoOuKlCDslaDstIjsl5AgQWJvcnRTaWduYWzsnYQg7IKs7Jqp7ZWY6rOgIOyeiOydjC5cbiAgICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDUwMDApKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGdldEZyb21BcGkoe1xuICAgICAgICAgIHVybDogdGhpcy5jb25maWcudXJsKHtcbiAgICAgICAgICAgIHBhdGg6IGAvdHJhbnNjcmliZS8ke3RyYW5zY3JpcHRpb25JZH1gLFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIGhlYWRlcnM6IGNvbWJpbmVIZWFkZXJzKHRoaXMuY29uZmlnLmhlYWRlcnMoKSwgaGVhZGVycyksXG4gICAgICAgICAgZmFpbGVkUmVzcG9uc2VIYW5kbGVyOiBydHpyRmFpbGVkUmVzcG9uc2VIYW5kbGVyLFxuICAgICAgICAgIHN1Y2Nlc3NmdWxSZXNwb25zZUhhbmRsZXI6IGNyZWF0ZUpzb25SZXNwb25zZUhhbmRsZXIoXG4gICAgICAgICAgICBydHpyVHJhbnNjcmlwdGlvblJlc3VsdFJlc3BvbnNlU2NoZW1hLFxuICAgICAgICAgICksXG4gICAgICAgICAgYWJvcnRTaWduYWw6IG9wdGlvbnMuYWJvcnRTaWduYWwsXG4gICAgICAgICAgZmV0Y2g6IHRoaXMuY29uZmlnLmZldGNoLFxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoZGF0YS52YWx1ZS5zdGF0dXMgIT09IFwidHJhbnNjcmliaW5nXCIpIHtcbiAgICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pKCk7XG5cbiAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSBcImZhaWxlZFwiKSB7XG4gICAgICBjb25zdCBkZXRhaWwgPSBpc051bGxpc2gocmVzcG9uc2UuZXJyb3IpXG4gICAgICAgID8gXCJ1bmtub3duIFJUWlIgdHJhbnNjcmlwdGlvbiBlcnJvclwiXG4gICAgICAgIDogZm9ybWF0UnR6ckVycm9yRGF0YSh7XG4gICAgICAgICAgICBlcnJvcjogcmVzcG9uc2UuZXJyb3IsXG4gICAgICAgICAgfSk7XG4gICAgICB0aHJvdyBuZXcgUnR6ckNsaWVudEVycm9yKFxuICAgICAgICBgUlRaUiB0cmFuc2NyaXB0aW9uIGZhaWxlZCBmb3IgaWQgJHtyZXNwb25zZS5pZH06IHN0YXR1cyAke3Jlc3BvbnNlLnN0YXR1c306IGAgK1xuICAgICAgICAgIGBwcm92aWRlciAke3RoaXMucHJvdmlkZXJ9OiBtb2RlbCAke3RoaXMubW9kZWxJZH06ICR7ZGV0YWlsfWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHNlZ21lbnRzID0gcmVzcG9uc2UucmVzdWx0cz8udXR0ZXJhbmNlcyA/PyBbXTtcblxuICAgIGNvbnN0IGxhbmd1YWdlcyA9IG5ldyBTZXQoc2VnbWVudHMubWFwKChpdGVtKSA9PiBpdGVtLmxhbmcpLmZpbHRlcigoaXRlbSkgPT4gIWlzRW1wdHkoaXRlbSkpKTtcbiAgICBjb25zdCBsYW5ndWFnZSA9ICgoKSA9PiB7XG4gICAgICBpZiAobGFuZ3VhZ2VzLnNpemUgPiAxKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBsYW5ndWFnZXMudmFsdWVzKCkubmV4dCgpLnZhbHVlO1xuICAgIH0pKCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgdGV4dDogc2VnbWVudHMubWFwKChpdGVtKSA9PiBpdGVtLm1zZykuam9pbihcIlxcblwiKSxcbiAgICAgIHNlZ21lbnRzOiBzZWdtZW50cy5tYXAoKHNlZ21lbnQpID0+ICh7XG4gICAgICAgIHRleHQ6IHNlZ21lbnQubXNnLFxuICAgICAgICBzdGFydFNlY29uZDogTWF0aC50cnVuYyhzZWdtZW50LnN0YXJ0X2F0IC8gMTAwMCksXG4gICAgICAgIGVuZFNlY29uZDogTWF0aC50cnVuYygoc2VnbWVudC5zdGFydF9hdCArIHNlZ21lbnQuZHVyYXRpb24pIC8gMTAwMCksXG4gICAgICB9KSksXG4gICAgICBsYW5ndWFnZSxcbiAgICAgIHdhcm5pbmdzLFxuICAgICAgZHVyYXRpb25JblNlY29uZHM6IHNlZ21lbnRzLnJlZHVjZSgoYWNjLCBzZWdtZW50KSA9PiBhY2MgKyBzZWdtZW50LmR1cmF0aW9uLCAwKSA/PyB1bmRlZmluZWQsXG4gICAgICByZXNwb25zZToge1xuICAgICAgICB0aW1lc3RhbXA6IGN1cnJlbnREYXRlLFxuICAgICAgICBtb2RlbElkOiB0aGlzLm1vZGVsSWQsXG4gICAgICAgIGhlYWRlcnM6IHJlc3BvbnNlSGVhZGVycyxcbiAgICAgICAgYm9keTogcmF3VmFsdWUsXG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBaUNBLFNBQVMsVUFBaUIsT0FBbUQ7Q0FDM0UsT0FBTyxVQUFVLFFBQVEsVUFBVTtBQUNyQztBQTBCQSxJQUFhLHlCQUFiLE1BQW9FO0NBUXZEO0NBQ1E7Q0FSbkIsdUJBQWdDO0NBRWhDLElBQUksV0FBbUI7RUFDckIsT0FBTyxLQUFLLE9BQU87Q0FDckI7Q0FFQSxZQUNFLFNBQ0EsUUFDQTtFQUZTLEtBQUEsVUFBQTtFQUNRLEtBQUEsU0FBQTtDQUNoQjtDQUVILE1BQWMsWUFBWTtFQUV4QixNQUFNLFdBQVcsT0FEQSxLQUFLLE9BQU8sU0FBUyxNQUNmLENBQ3JCLEtBQUssT0FBTyxJQUFJLEVBQ2QsTUFBTSxnQkFDUixDQUFDLEdBQ0Q7R0FDRSxRQUFRO0dBQ1IsU0FBUyxFQUNQLGdCQUFnQixvQ0FDbEI7R0FDQSxNQUFNLElBQUksZ0JBQWdCO0lBQ3hCLFdBQVcsS0FBSyxPQUFPLEtBQUs7SUFDNUIsZUFBZSxLQUFLLE9BQU8sS0FBSztHQUNsQyxDQUFDO0VBQ0gsQ0FDRjtFQUVBLE1BQU0sZUFBZSxNQUFNLFNBQVMsS0FBSztFQUN6QyxJQUFJLENBQUMsU0FBUyxJQUFJO0dBQ2hCLE1BQU0sU0FBUyxNQUFNLDRCQUE0QixZQUFZO0dBQzdELE1BQU0sSUFBSSxnQkFDUixrQ0FBa0MsU0FBUyxTQUN6QyxVQUFVLE1BQU0sSUFBSSxLQUFLLEtBQUssVUFFbEM7RUFDRjtFQUVBLE1BQU0sYUFBYSxNQUFNLGNBQWM7R0FDckMsTUFBTTtHQUNOLFFBQVEsVUFBVSxzQkFBc0I7RUFDMUMsQ0FBQztFQUNELElBQUksQ0FBQyxXQUFXLFNBQ2QsTUFBTSxJQUFJLGdCQUFnQiwrQkFBK0IsV0FBVyxNQUFNLFNBQVM7RUFHckYsT0FBTyxXQUFXLE1BQU07Q0FDMUI7Q0FFQSxNQUFjLFFBQVEsRUFBRSxPQUFPLFdBQVcsbUJB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
@@ -1,6 +1,6 @@
1
1
  import { lazySchema, zodSchema } from "@ai-sdk/provider-utils";
2
2
  import { z } from "zod";
3
- //#region src/ai/providers/rtzr/options.ts
3
+ // src/ai/providers/rtzr/options.ts
4
4
  const rtzrOptionFields = {
5
5
  domain: z.enum(["CALL", "GENERAL"]).default("GENERAL"),
6
6
  language: z.string(),
@@ -34,7 +34,6 @@ const rtzrTranscriptionProviderOptions = lazySchema(() => zodSchema(z.object(rtz
34
34
  return [rtzrOptionsMap[key], value];
35
35
  }));
36
36
  })));
37
- //#endregion
38
37
  export { rtzrTranscriptionProviderOptions };
39
38
 
40
39
  //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYWkvcHJvdmlkZXJzL3J0enIvb3B0aW9ucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBsYXp5U2NoZW1hLCB6b2RTY2hlbWEgfSBmcm9tIFwiQGFpLXNkay9wcm92aWRlci11dGlsc1wiO1xuaW1wb3J0IHsgdHlwZSBJbmZlclNjaGVtYSB9IGZyb20gXCJAYWktc2RrL3Byb3ZpZGVyLXV0aWxzXCI7XG5pbXBvcnQgeyB6IH0gZnJvbSBcInpvZFwiO1xuXG5leHBvcnQgdHlwZSBSdHpyVHJhbnNjcmlwdGlvbk1vZGVsSWQgPSBcIndoaXNwZXJcIiB8IFwic29tbWVyc1wiIHwgKHN0cmluZyAmIHt9KTtcblxuY29uc3QgcnR6ck9wdGlvbkZpZWxkcyA9IHtcbiAgZG9tYWluOiB6LmVudW0oW1wiQ0FMTFwiLCBcIkdFTkVSQUxcIl0pLmRlZmF1bHQoXCJHRU5FUkFMXCIpLFxuICBsYW5ndWFnZTogei5zdHJpbmcoKSxcbiAgbGFuZ3VhZ2VDYW5kaWRhdGVzOiB6LmFycmF5KHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gIGtleXdvcmRzOiB6LnVuaW9uKFt6LnN0cmluZygpLCB6LmFycmF5KHouc3RyaW5nKCkpXSkub3B0aW9uYWwoKSxcbiAgcGFyYWdyYXBoU3BsaXR0ZXJNYXg6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgZGlhcml6YXRpb246IHouYm9vbGVhbigpLm9wdGlvbmFsKCksXG4gIGl0bjogei5ib29sZWFuKCkub3B0aW9uYWwoKSxcbiAgZGlhcml6YXRpb25TcGtDb3VudDogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICBkaXNmbHVlbmN5RmlsdGVyOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxuICBwYXJhZ3JhcGhTcGxpdHRlcjogei5ib29sZWFuKCkub3B0aW9uYWwoKSxcbiAgcHJvZmFuaXR5RmlsdGVyOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxuICB3b3JkVGltZXN0YW1wOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxufTtcblxuY29uc3QgcnR6ck9wdGlvbnNNYXAgPSB7XG4gIGRvbWFpbjogXCJkb21haW5cIixcbiAgbGFuZ3VhZ2U6IFwibGFuZ3VhZ2VcIixcbiAgbGFuZ3VhZ2VDYW5kaWRhdGVzOiBcImxhbmd1YWdlX2NhbmRpZGF0ZXNcIixcbiAga2V5d29yZHM6IFwia2V5d29yZHNcIixcbiAgcGFyYWdyYXBoU3BsaXR0ZXJNYXg6IFwicGFyYWdyYXBoX3NwbGl0dGVyLm1heFwiLFxuICBkaWFyaXphdGlvbjogXCJ1c2VfZGlhcml6YXRpb25cIixcbiAgaXRuOiBcInVzZV9pdG5cIixcbiAgZGlhcml6YXRpb25TcGtDb3VudDogXCJkaWFyaXphdGlvbi5zcGtfY291bnRcIixcbiAgZGlzZmx1ZW5jeUZpbHRlcjogXCJ1c2VfZGlzZmx1ZW5jeV9maWx0ZXJcIixcbiAgcGFyYWdyYXBoU3BsaXR0ZXI6IFwidXNlX3BhcmFncmFwaF9zcGxpdHRlclwiLFxuICBwcm9mYW5pdHlGaWx0ZXI6IFwidXNlX3Byb2Zhbml0eV9maWx0ZXJcIixcbiAgd29yZFRpbWVzdGFtcDogXCJ1c2Vfd29yZF90aW1lc3RhbXBcIixcbn0gc2F0aXNmaWVzIFJlY29yZDxrZXlvZiB0eXBlb2YgcnR6ck9wdGlvbkZpZWxkcywgc3RyaW5nPjtcblxuLy8gaHR0cHM6Ly9kZXZlbG9wZXJzLnJ0enIuYWkvZG9jcy9zdHQtZmlsZS9cbmV4cG9ydCBjb25zdCBydHpyVHJhbnNjcmlwdGlvblByb3ZpZGVyT3B0aW9ucyA9IGxhenlTY2hlbWEoKCkgPT5cbiAgem9kU2NoZW1hKFxuICAgIHoub2JqZWN0KHJ0enJPcHRpb25GaWVsZHMpLnRyYW5zZm9ybSgoaXRlbSkgPT4ge1xuICAgICAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgICAgT2JqZWN0LmVudHJpZXMoaXRlbSkubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgcnR6ck9wdGlvbnNNYXBbXG4gICAgICAgICAgICAgIC8qIFNBRkVUWTogT2JqZWN0LmVudHJpZXPsnZgg7YKk64qUIOyeheugpSDqsJ3ssrTsnZgg7YKk66GcIOygnO2VnOuQnOuLpC4gKi8ga2V5IGFzIGtleW9mIHR5cGVvZiBydHpyT3B0aW9uRmllbGRzXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgXTtcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH0pLFxuICApLFxuKTtcblxuZXhwb3J0IHR5cGUgUnR6clRyYW5zY3JpcHRpb25Qcm92aWRlck9wdGlvbnMgPSBJbmZlclNjaGVtYTx0eXBlb2YgcnR6clRyYW5zY3JpcHRpb25Qcm92aWRlck9wdGlvbnM+O1xuIl0sIm1hcHBpbmdzIjoiOzs7QUFNQSxNQUFNLG1CQUFtQjtDQUN2QixRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVEsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLFNBQVM7Q0FDckQsVUFBVSxFQUFFLE9BQU87Q0FDbkIsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUztDQUNqRCxVQUFVLEVBQUUsTUFBTSxDQUFDLEVBQUUsT0FBTyxHQUFHLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7Q0FDOUQsc0JBQXNCLEVBQUUsT0FBTyxDQUFDLENBQUMsU0FBUztDQUMxQyxhQUFhLEVBQUUsUUFBUSxDQUFDLENBQUMsU0FBUztDQUNsQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsU0FBUztDQUMxQixxQkFBcUIsRUFBRSxPQUFPLENBQUMsQ0FBQyxTQUFTO0NBQ3pDLGtCQUFrQixFQUFFLFFBQVEsQ0FBQyxDQUFDLFNBQVM7Q0FDdkMsbUJBQW1CLEVBQUUsUUFBUSxDQUFDLENBQUMsU0FBUztDQUN4QyxpQkFBaUIsRUFBRSxRQUFRLENBQUMsQ0FBQyxTQUFTO0NBQ3RDLGVBQWUsRUFBRSxRQUFRLENBQUMsQ0FBQyxTQUFTO0FBQ3RDO0FBRUEsTUFBTSxpQkFBaUI7Q0FDckIsUUFBUTtDQUNSLFVBQVU7Q0FDVixvQkFBb0I7Q0FDcEIsVUFBVTtDQUNWLHNCQUFzQjtDQUN0QixhQUFhO0NBQ2IsS0FBSztDQUNMLHFCQUFxQjtDQUNyQixrQkFBa0I7Q0FDbEIsbUJBQW1CO0NBQ25CLGlCQUFpQjtDQUNqQixlQUFlO0FBQ2pCO0FBR0EsTUFBYSxtQ0FBbUMsaUJBQzlDLFVBQ0UsRUFBRSxPQUFPLGdCQUFnQixDQUFDLENBQUMsV0FBVyxTQUFTO0NBQzdDLE9BQU8sT0FBTyxZQUNaLE9BQU8sUUFBUSxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxXQUFXO0VBQ3pDLE9BQU8sQ0FDTCxlQUNtRCxNQUVuRCxLQUNGO0NBQ0YsQ0FBQyxDQUNIO0FBQ0YsQ0FBQyxDQUNILENBQ0YifQ==
@@ -1,7 +1,7 @@
1
1
  import { RtzrTranscriptionModel } from "./model.js";
2
2
  import { loadApiKey, loadOptionalSetting, withUserAgentSuffix, withoutTrailingSlash } from "@ai-sdk/provider-utils";
3
3
  import { NoSuchModelError } from "@ai-sdk/provider";
4
- //#region src/ai/providers/rtzr/provider.ts
4
+ // src/ai/providers/rtzr/provider.ts
5
5
  function handleUnsupportedTypes(modelType) {
6
6
  return (modelId) => {
7
7
  throw new NoSuchModelError({
@@ -49,7 +49,6 @@ function createRtzr(options = {}) {
49
49
  return provider;
50
50
  }
51
51
  const rtzr = createRtzr();
52
- //#endregion
53
52
  export { createRtzr, rtzr };
54
53
 
55
54
  //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXIuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FpL3Byb3ZpZGVycy9ydHpyL3Byb3ZpZGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5vU3VjaE1vZGVsRXJyb3IgfSBmcm9tIFwiQGFpLXNkay9wcm92aWRlclwiO1xuaW1wb3J0IHsgdHlwZSBQcm92aWRlclYzLCB0eXBlIFRyYW5zY3JpcHRpb25Nb2RlbFYzIH0gZnJvbSBcIkBhaS1zZGsvcHJvdmlkZXJcIjtcbmltcG9ydCB7XG4gIGxvYWRBcGlLZXksXG4gIGxvYWRPcHRpb25hbFNldHRpbmcsXG4gIHdpdGhvdXRUcmFpbGluZ1NsYXNoLFxuICB3aXRoVXNlckFnZW50U3VmZml4LFxufSBmcm9tIFwiQGFpLXNkay9wcm92aWRlci11dGlsc1wiO1xuaW1wb3J0IHsgdHlwZSBGZXRjaEZ1bmN0aW9uIH0gZnJvbSBcIkBhaS1zZGsvcHJvdmlkZXItdXRpbHNcIjtcblxuaW1wb3J0IHsgUnR6clRyYW5zY3JpcHRpb25Nb2RlbCB9IGZyb20gXCIuL21vZGVsXCI7XG5pbXBvcnQgeyB0eXBlIFJ0enJUcmFuc2NyaXB0aW9uTW9kZWxJZCB9IGZyb20gXCIuL29wdGlvbnNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBSdHpyUHJvdmlkZXIgZXh0ZW5kcyBQcm92aWRlclYzIHtcbiAgKG1vZGVsSWQ6IFJ0enJUcmFuc2NyaXB0aW9uTW9kZWxJZCk6IFRyYW5zY3JpcHRpb25Nb2RlbFYzO1xuICB0cmFuc2NyaXB0aW9uKG1vZGVsSWQ6IFJ0enJUcmFuc2NyaXB0aW9uTW9kZWxJZCk6IFRyYW5zY3JpcHRpb25Nb2RlbFYzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJ0enJQcm92aWRlclNldHRpbmdzIHtcbiAgYmFzZVVSTD86IHN0cmluZztcbiAgY2xpZW50SWQ/OiBzdHJpbmc7XG4gIGNsaWVudFNlY3JldD86IHN0cmluZztcbiAgaGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGZldGNoPzogRmV0Y2hGdW5jdGlvbjtcbn1cblxuZnVuY3Rpb24gaGFuZGxlVW5zdXBwb3J0ZWRUeXBlcyhtb2RlbFR5cGU6IFwibGFuZ3VhZ2VNb2RlbFwiIHwgXCJlbWJlZGRpbmdNb2RlbFwiIHwgXCJpbWFnZU1vZGVsXCIpIHtcbiAgcmV0dXJuIChtb2RlbElkOiBzdHJpbmcpID0+IHtcbiAgICB0aHJvdyBuZXcgTm9TdWNoTW9kZWxFcnJvcih7XG4gICAgICBtb2RlbElkLFxuICAgICAgbW9kZWxUeXBlLFxuICAgIH0pO1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUnR6cihvcHRpb25zOiBSdHpyUHJvdmlkZXJTZXR0aW5ncyA9IHt9KTogUnR6clByb3ZpZGVyIHtcbiAgY29uc3QgYmFzZVVSTCA9XG4gICAgd2l0aG91dFRyYWlsaW5nU2xhc2goXG4gICAgICBsb2FkT3B0aW9uYWxTZXR0aW5nKHtcbiAgICAgICAgc2V0dGluZ1ZhbHVlOiBvcHRpb25zLmJhc2VVUkwsXG4gICAgICAgIGVudmlyb25tZW50VmFyaWFibGVOYW1lOiBcIlJUWlJfQkFTRV9VUkxcIixcbiAgICAgIH0pLFxuICAgICkgPz8gXCJodHRwczovL29wZW5hcGkudml0by5haS92MVwiO1xuXG4gIGNvbnN0IHByb3ZpZGVyTmFtZSA9IG9wdGlvbnMubmFtZSA/PyBcInJ0enJcIjtcblxuICBjb25zdCBnZXRIZWFkZXJzID0gKCkgPT5cbiAgICB3aXRoVXNlckFnZW50U3VmZml4KFxuICAgICAge1xuICAgICAgICAuLi5vcHRpb25zLmhlYWRlcnMsXG4gICAgICB9LFxuICAgICAgYGNhcnRhbm92YS1haS9ydHpyLWFwaS1wcm92aWRlcmAsXG4gICAgKTtcblxuICBjb25zdCBjcmVhdGVUcmFuc2NyaXB0aW9uTW9kZWwgPSAobW9kZWxJZDogUnR6clRyYW5zY3JpcHRpb25Nb2RlbElkKSA9PiB7XG4gICAgY29uc3QgY2xpZW50SWQgPSBsb2FkQXBpS2V5KHtcbiAgICAgIGFwaUtleTogb3B0aW9ucy5jbGllbnRJZCxcbiAgICAgIGVudmlyb25tZW50VmFyaWFibGVOYW1lOiBcIlJUWlJfQ0xJRU5UX0lEXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJSVFpSXCIsXG4gICAgfSk7XG5cbiAgICBjb25zdCBjbGllbnRTZWNyZXQgPSBsb2FkQXBpS2V5KHtcbiAgICAgIGFwaUtleTogb3B0aW9ucy5jbGllbnRTZWNyZXQsXG4gICAgICBlbnZpcm9ubWVudFZhcmlhYmxlTmFtZTogXCJSVFpSX0NMSUVOVF9TRUNSRVRcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlJUWlJcIixcbiAgICB9KTtcblxuICAgIHJldHVybiBuZXcgUnR6clRyYW5zY3JpcHRpb25Nb2RlbChtb2RlbElkLCB7XG4gICAgICBwcm92aWRlcjogYCR7cHJvdmlkZXJOYW1lfS50cmFuc2NyaXB0aW9uYCxcbiAgICAgIGF1dGg6IHtcbiAgICAgICAgY2xpZW50SWQsXG4gICAgICAgIGNsaWVudFNlY3JldCxcbiAgICAgIH0sXG4gICAgICB1cmw6ICh7IHBhdGggfSkgPT4gYCR7YmFzZVVSTH0ke3BhdGh9YCxcbiAgICAgIGhlYWRlcnM6IGdldEhlYWRlcnMsXG4gICAgICBmZXRjaDogb3B0aW9ucy5mZXRjaCxcbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBwcm92aWRlciA9IChtb2RlbElkOiBSdHpyVHJhbnNjcmlwdGlvbk1vZGVsSWQpID0+IGNyZWF0ZVRyYW5zY3JpcHRpb25Nb2RlbChtb2RlbElkKTtcblxuICBwcm92aWRlci5zcGVjaWZpY2F0aW9uVmVyc2lvbiA9IFwidjNcIiBhcyBjb25zdDtcbiAgcHJvdmlkZXIudHJhbnNjcmlwdGlvbiA9IGNyZWF0ZVRyYW5zY3JpcHRpb25Nb2RlbDtcbiAgcHJvdmlkZXIudHJhbnNjcmlwdGlvbk1vZGVsID0gY3JlYXRlVHJhbnNjcmlwdGlvbk1vZGVsO1xuXG4gIHByb3ZpZGVyLmxhbmd1YWdlTW9kZWwgPSBoYW5kbGVVbnN1cHBvcnRlZFR5cGVzKFwibGFuZ3VhZ2VNb2RlbFwiKTtcbiAgcHJvdmlkZXIuZW1iZWRkaW5nTW9kZWwgPSBoYW5kbGVVbnN1cHBvcnRlZFR5cGVzKFwiZW1iZWRkaW5nTW9kZWxcIik7XG4gIHByb3ZpZGVyLmltYWdlTW9kZWwgPSBoYW5kbGVVbnN1cHBvcnRlZFR5cGVzKFwiaW1hZ2VNb2RlbFwiKTtcbiAgcmV0dXJuIC8qIFNBRkVUWTogQUkgU0RLIOygnOqzteyekOyZgCDrj4Tqtawg7Iqk7YKk66eIIOqzhOyVveydtCDsnbQg6rCS7J2YIO2DgOyeheydhCDrs7TsnqXtlZzri6QuICovIHByb3ZpZGVyIGFzIFJ0enJQcm92aWRlcjtcbn1cblxuZXhwb3J0IGNvbnN0IHJ0enIgPSBjcmVhdGVSdHpyKCk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUEyQkEsU0FBUyx1QkFBdUIsV0FBOEQ7Q0FDNUYsUUFBUSxZQUFvQjtFQUMxQixNQUFNLElBQUksaUJBQWlCO0dBQ3pCO0dBQ0E7RUFDRixDQUFDO0NBQ0g7QUFDRjtBQUVBLFNBQWdCLFdBQVcsVUFBZ0MsQ0FBQyxHQUFpQjtDQUMzRSxNQUFNLFVBQ0oscUJBQ0Usb0JBQW9CO0VBQ2xCLGNBQWMsUUFBUTtFQUN0Qix5QkFBeUI7Q0FDM0IsQ0FBQyxDQUNILEtBQUs7Q0FFUCxNQUFNLGVBQWUsUUFBUSxRQUFRO0NBRXJDLE1BQU0sbUJBQ0osb0JBQ0UsRUFDRSxHQUFHLFFBQVEsUUFDYixHQUNBLGdDQUNGO0NBRUYsTUFBTSw0QkFBNEIsWUFBc0M7RUFDdEUsTUFBTSxXQUFXLFdBQVc7R0FDMUIsUUFBUSxRQUFRO0dBQ2hCLHlCQUF5QjtHQUN6QixhQUFhO0VBQ2YsQ0FBQztFQUVELE1BQU0sZUFBZSxXQUFXO0dBQzlCLFFBQVEsUUFBUTtHQUNoQix5QkFBeUI7R0FDekIsYUFBYTtFQUNmLENBQUM7RUFFRCxPQUFPLElBQUksdUJBQXVCLFNBQVM7R0FDekMsVUFBVSxHQUFHLGFBQWE7R0FDMUIsTUFBTTtJQUNKO0lBQ0E7R0FDRjtHQUNBLE1BQU0sRUFBRSxXQUFXLEdBQUcsVUFBVTtHQUNoQyxTQUFTO0dBQ1QsT0FBTyxRQUFRO0VBQ2pCLENBQUM7Q0FDSDtDQUVBLE1BQU0sWUFBWSxZQUFzQyx5QkFBeUIsT0FBTztDQUV4RixTQUFTLHVCQUF1QjtDQUNoQyxTQUFTLGdCQUFnQjtDQUN6QixTQUFTLHFCQUFxQjtDQUU5QixTQUFTLGdCQUFnQix1QkFBdUIsZUFBZTtDQUMvRCxTQUFTLGlCQUFpQix1QkFBdUIsZ0JBQWdCO0NBQ2pFLFNBQVMsYUFBYSx1QkFBdUIsWUFBWTtDQUN6RCxPQUEyRDtBQUM3RDtBQUVBLE1BQWEsT0FBTyxXQUFXIn0=
@@ -1,6 +1,6 @@
1
1
  import { extractResponseHeaders, isAbortError, withUserAgentSuffix } from "@ai-sdk/provider-utils";
2
2
  import { APICallError } from "@ai-sdk/provider";
3
- //#region src/ai/providers/rtzr/utils.ts
3
+ // src/ai/providers/rtzr/utils.ts
4
4
  const FETCH_FAILED_ERROR_MESSAGES = ["fetch failed", "failed to fetch"];
5
5
  function handleFetchError({ error, url, requestBodyValues }) {
6
6
  if (isAbortError(error)) return error;
@@ -73,7 +73,6 @@ const getFromApi = async ({ url, headers = {}, successfulResponseHandler, failed
73
73
  });
74
74
  }
75
75
  };
76
- //#endregion
77
76
  export { getFromApi, handleFetchError };
78
77
 
79
78
  //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FpL3Byb3ZpZGVycy9ydHpyL3V0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFQSUNhbGxFcnJvciB9IGZyb20gXCJAYWktc2RrL3Byb3ZpZGVyXCI7XG5pbXBvcnQgeyBleHRyYWN0UmVzcG9uc2VIZWFkZXJzLCBpc0Fib3J0RXJyb3IsIHdpdGhVc2VyQWdlbnRTdWZmaXggfSBmcm9tIFwiQGFpLXNkay9wcm92aWRlci11dGlsc1wiO1xuaW1wb3J0IHsgdHlwZSBGZXRjaEZ1bmN0aW9uLCB0eXBlIFJlc3BvbnNlSGFuZGxlciB9IGZyb20gXCJAYWktc2RrL3Byb3ZpZGVyLXV0aWxzXCI7XG5cbmNvbnN0IEZFVENIX0ZBSUxFRF9FUlJPUl9NRVNTQUdFUyA9IFtcImZldGNoIGZhaWxlZFwiLCBcImZhaWxlZCB0byBmZXRjaFwiXTtcblxuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZUZldGNoRXJyb3Ioe1xuICBlcnJvcixcbiAgdXJsLFxuICByZXF1ZXN0Qm9keVZhbHVlcyxcbn06IHtcbiAgZXJyb3I6IHVua25vd247XG4gIHVybDogc3RyaW5nO1xuICByZXF1ZXN0Qm9keVZhbHVlczogdW5rbm93bjtcbn0pIHtcbiAgaWYgKGlzQWJvcnRFcnJvcihlcnJvcikpIHtcbiAgICByZXR1cm4gZXJyb3I7XG4gIH1cblxuICBpZiAoXG4gICAgZXJyb3IgaW5zdGFuY2VvZiBUeXBlRXJyb3IgJiZcbiAgICBGRVRDSF9GQUlMRURfRVJST1JfTUVTU0FHRVMuaW5jbHVkZXMoZXJyb3IubWVzc2FnZS50b0xvd2VyQ2FzZSgpKVxuICApIHtcbiAgICBjb25zdCBjYXVzZSA9IC8qIFNBRkVUWTogQUkgU0RLIOygnOqzteyekOyZgCDrj4Tqtawg7Iqk7YKk66eIIOqzhOyVveydtCDsnbQg6rCS7J2YIO2DgOyeheydhCDrs7TsnqXtlZzri6QuICovIChcbiAgICAgIGVycm9yIGFzIHsgY2F1c2U/OiBFcnJvciB9XG4gICAgKS5jYXVzZTtcblxuICAgIGlmIChjYXVzZSkge1xuICAgICAgcmV0dXJuIG5ldyBBUElDYWxsRXJyb3Ioe1xuICAgICAgICBtZXNzYWdlOiBgQ2Fubm90IGNvbm5lY3QgdG8gQVBJOiAke2NhdXNlLm1lc3NhZ2V9YCxcbiAgICAgICAgY2F1c2UsXG4gICAgICAgIHVybCxcbiAgICAgICAgcmVxdWVzdEJvZHlWYWx1ZXMsXG4gICAgICAgIGlzUmV0cnlhYmxlOiB0cnVlLCAvLyByZXRyeSB3aGVuIG5ldHdvcmsgZXJyb3JcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBlcnJvcjtcbn1cblxuLy8gdXNlIGZ1bmN0aW9uIHRvIGFsbG93IGZvciBtb2NraW5nIGluIHRlc3RzOlxuY29uc3QgZ2V0T3JpZ2luYWxGZXRjaCA9ICgpID0+IGdsb2JhbFRoaXMuZmV0Y2g7XG5cbmV4cG9ydCBjb25zdCBnZXRGcm9tQXBpID0gYXN5bmMgPFQ+KHtcbiAgdXJsLFxuICBoZWFkZXJzID0ge30sXG4gIHN1Y2Nlc3NmdWxSZXNwb25zZUhhbmRsZXIsXG4gIGZhaWxlZFJlc3BvbnNlSGFuZGxlcixcbiAgYWJvcnRTaWduYWwsXG4gIGZldGNoID0gZ2V0T3JpZ2luYWxGZXRjaCgpLFxufToge1xuICB1cmw6IHN0cmluZztcbiAgaGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD47XG4gIGZhaWxlZFJlc3BvbnNlSGFuZGxlcjogUmVzcG9uc2VIYW5kbGVyPEVycm9yPjtcbiAgc3VjY2Vzc2Z1bFJlc3BvbnNlSGFuZGxlcjogUmVzcG9uc2VIYW5kbGVyPFQ+O1xuICBhYm9ydFNpZ25hbD86IEFib3J0U2lnbmFsO1xuICBmZXRjaD86IEZldGNoRnVuY3Rpb247XG59KSA9PiB7XG4gIHRyeSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwsIHtcbiAgICAgIG1ldGhvZDogXCJHRVRcIixcbiAgICAgIGhlYWRlcnM6IHdpdGhVc2VyQWdlbnRTdWZmaXgoaGVhZGVycywgYGNhcnRhbm92YS1haS9ydHpyLWFwaS1wcm92aWRlcmApLFxuICAgICAgc2lnbmFsOiBhYm9ydFNpZ25hbCxcbiAgICB9KTtcblxuICAgIGNvbnN0IHJlc3BvbnNlSGVhZGVycyA9IGV4dHJhY3RSZXNwb25zZUhlYWRlcnMocmVzcG9uc2UpO1xuXG4gICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgbGV0IGVycm9ySW5mb3JtYXRpb246IHtcbiAgICAgICAgdmFsdWU6IEVycm9yO1xuICAgICAgICByZXNwb25zZUhlYWRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHwgdW5kZWZpbmVkO1xuICAgICAgfTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgZXJyb3JJbmZvcm1hdGlvbiA9IGF3YWl0IGZhaWxlZFJlc3BvbnNlSGFuZGxlcih7XG4gICAgICAgICAgcmVzcG9uc2UsXG4gICAgICAgICAgdXJsLFxuICAgICAgICAgIHJlcXVlc3RCb2R5VmFsdWVzOiB7fSxcbiAgICAgICAgfSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBpZiAoaXNBYm9ydEVycm9yKGVycm9yKSB8fCBBUElDYWxsRXJyb3IuaXNJbnN0YW5jZShlcnJvcikpIHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRocm93IG5ldyBBUElDYWxsRXJyb3Ioe1xuICAgICAgICAgIG1lc3NhZ2U6IFwiRmFpbGVkIHRvIHByb2Nlc3MgZXJyb3IgcmVzcG9uc2VcIixcbiAgICAgICAgICBjYXVzZTogZXJyb3IsXG4gICAgICAgICAgc3RhdHVzQ29kZTogcmVzcG9uc2Uuc3RhdHVzLFxuICAgICAgICAgIHVybCxcbiAgICAgICAgICByZXNwb25zZUhlYWRlcnMsXG4gICAgICAgICAgcmVxdWVzdEJvZHlWYWx1ZXM6IHt9LFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgdGhyb3cgZXJyb3JJbmZvcm1hdGlvbi52YWx1ZTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IHN1Y2Nlc3NmdWxSZXNwb25zZUhhbmRsZXIoe1xuICAgICAgICByZXNwb25zZSxcbiAgICAgICAgdXJsLFxuICAgICAgICByZXF1ZXN0Qm9keVZhbHVlczoge30sXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgaWYgKGlzQWJvcnRFcnJvcihlcnJvcikgfHwgQVBJQ2FsbEVycm9yLmlzSW5zdGFuY2UoZXJyb3IpKSB7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhyb3cgbmV3IEFQSUNhbGxFcnJvcih7XG4gICAgICAgIG1lc3NhZ2U6IFwiRmFpbGVkIHRvIHByb2Nlc3Mgc3VjY2Vzc2Z1bCByZXNwb25zZVwiLFxuICAgICAgICBjYXVzZTogZXJyb3IsXG4gICAgICAgIHN0YXR1c0NvZGU6IHJlc3BvbnNlLnN0YXR1cyxcbiAgICAgICAgdXJsLFxuICAgICAgICByZXNwb25zZUhlYWRlcnMsXG4gICAgICAgIHJlcXVlc3RCb2R5VmFsdWVzOiB7fSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICB0aHJvdyBoYW5kbGVGZXRjaEVycm9yKHsgZXJyb3IsIHVybCwgcmVxdWVzdEJvZHlWYWx1ZXM6IHt9IH0pO1xuICB9XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7QUFJQSxNQUFNLDhCQUE4QixDQUFDLGdCQUFnQixpQkFBaUI7QUFFdEUsU0FBZ0IsaUJBQWlCLEVBQy9CLE9BQ0EsS0FDQSxxQkFLQztDQUNELElBQUksYUFBYSxLQUFLLEdBQ3BCLE9BQU87Q0FHVCxJQUNFLGlCQUFpQixhQUNqQiw0QkFBNEIsU0FBUyxNQUFNLFFBQVEsWUFBWSxDQUFDLEdBQ2hFO0VBQ0EsTUFBTSxRQUNKLE1BQ0E7RUFFRixJQUFJLE9BQ0YsT0FBTyxJQUFJLGFBQWE7R0FDdEIsU0FBUywwQkFBMEIsTUFBTTtHQUN6QztHQUNBO0dBQ0E7R0FDQSxhQUFhO0VBQ2YsQ0FBQztDQUVMO0NBRUEsT0FBTztBQUNUO0FBR0EsTUFBTSx5QkFBeUIsV0FBVztBQUUxQyxNQUFhLGFBQWEsT0FBVSxFQUNsQyxLQUNBLFVBQVUsQ0FBQyxHQUNYLDJCQUNBLHVCQUNBLGFBQ0EsUUFBUSxpQkFBaUIsUUFRckI7Q0FDSixJQUFJO0VBQ0YsTUFBTSxXQUFXLE1BQU0sTUFBTSxLQUFLO0dBQ2hDLFFBQVE7R0FDUixTQUFTLG9CQUFvQixTQUFTLGdDQUFnQztHQUN0RSxRQUFRO0VBQ1YsQ0FBQztFQUVELE1BQU0sa0JBQWtCLHVCQUF1QixRQUFRO0VBRXZELElBQUksQ0FBQyxTQUFTLElBQUk7R0FDaEIsSUFBSTtHQUtKLElBQUk7SUFDRixtQkFBbUIsTUFBTSxzQkFBc0I7S0FDN0M7S0FDQTtLQUNBLG1CQUFtQixDQUFDO0lBQ3RCLENBQUM7R0FDSCxTQUFTLE9BQU87SUFDZCxJQUFJLGFBQWEsS0FBSyxLQUFLLGFBQWEsV0FBVyxLQUFLLEdBQ3RELE1BQU07SUFHUixNQUFNLElBQUksYUFBYTtLQUNyQixTQUFTO0tBQ1QsT0FBTztLQUNQLFlBQVksU0FBUztLQUNyQjtLQUNBO0tBQ0EsbUJBQW1CLENBQUM7SUFDdEIsQ0FBQztHQUNIO0dBRUEsTUFBTSxpQkFBaUI7RUFDekI7RUFFQSxJQUFJO0dBQ0YsT0FBTyxNQUFNLDBCQUEwQjtJQUNyQztJQUNBO0lBQ0EsbUJBQW1CLENBQUM7R0FDdEIsQ0FBQztFQUNILFNBQVMsT0FBTztHQUNkLElBQUksaUJBQWlCLE9BQ25CO1FBQUksYUFBYSxLQUFLLEtBQUssYUFBYSxXQUFXLEtBQUssR0FDdEQsTUFBTTtHQUNSO0dBR0YsTUFBTSxJQUFJLGFBQWE7SUFDckIsU0FBUztJQUNULE9BQU87SUFDUCxZQUFZLFNBQVM7SUFDckI7SUFDQTtJQUNBLG1CQUFtQixDQUFDO0dBQ3RCLENBQUM7RUFDSDtDQUNGLFNBQVMsT0FBTztFQUNkLE1BQU0saUJBQWlCO0dBQUU7R0FBTztHQUFLLG1CQUFtQixDQUFDO0VBQUUsQ0FBQztDQUM5RDtBQUNGIn0=
@@ -4,7 +4,7 @@ import { DB, init_db } from "../database/db.js";
4
4
  import { PuriWrapper, init_puri_wrapper } from "../database/puri-wrapper.js";
5
5
  import { UpsertBuilder, init_upsert_builder } from "../database/upsert-builder.js";
6
6
  import { getLogger } from "@logtape/logtape";
7
- //#region src/api/base-frame.ts
7
+ // src/api/base-frame.ts
8
8
  var BaseFrameClass;
9
9
  var init_base_frame = __esmMin((() => {
10
10
  init_db();
@@ -24,15 +24,15 @@ var init_base_frame = __esmMin((() => {
24
24
  getPuri(which) {
25
25
  const trx = DB.getTransactionContext().getTransaction(which);
26
26
  if (trx) return trx;
27
- return new PuriWrapper(this.getDB(which), new UpsertBuilder());
27
+ const db = this.getDB(which);
28
+ return new PuriWrapper(db, new UpsertBuilder());
28
29
  }
29
30
  getUpsertBuilder() {
30
31
  return new UpsertBuilder();
31
32
  }
32
33
  };
33
34
  }));
34
- //#endregion
35
35
  init_base_frame();
36
36
  export { BaseFrameClass, init_base_frame };
37
37
 
38
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1mcmFtZS5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBpL2Jhc2UtZnJhbWUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0TG9nZ2VyIH0gZnJvbSBcIkBsb2d0YXBlL2xvZ3RhcGVcIjtcbmltcG9ydCB7IHR5cGUgTG9nZ2VyIH0gZnJvbSBcIkBsb2d0YXBlL2xvZ3RhcGVcIjtcbmltcG9ydCB7IHR5cGUgS25leCB9IGZyb20gXCJrbmV4XCI7XG5cbmltcG9ydCB7IHR5cGUgREJQcmVzZXQgfSBmcm9tIFwiLi4vZGF0YWJhc2UvZGJcIjtcbi8vIFN0YXRpYyBpbXBvcnRzIGtlcHQgZm9yIG5vbi1hc3luYyBmdW5jdGlvbnMgKGdldERCLCBnZXRQdXJpLCBnZXRVcHNlcnRCdWlsZGVyKVxuaW1wb3J0IHsgREIgfSBmcm9tIFwiLi4vZGF0YWJhc2UvZGJcIjtcbmltcG9ydCB7IFB1cmlXcmFwcGVyIH0gZnJvbSBcIi4uL2RhdGFiYXNlL3B1cmktd3JhcHBlclwiO1xuaW1wb3J0IHsgVXBzZXJ0QnVpbGRlciB9IGZyb20gXCIuLi9kYXRhYmFzZS91cHNlcnQtYnVpbGRlclwiO1xuaW1wb3J0IHsgY29udmVydERvbWFpblRvQ2F0ZWdvcnkgfSBmcm9tIFwiLi4vbG9nZ2VyL2NhdGVnb3J5XCI7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlRnJhbWVDbGFzcyB7XG4gIHByb3RlY3RlZCByZWFkb25seSBsb2dnZXI6IExvZ2dlcjtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgZnJhbWVOYW1lOiBzdHJpbmcgPSB0aGlzLmNvbnN0cnVjdG9yLm5hbWUpIHtcbiAgICB0aGlzLmxvZ2dlciA9IGdldExvZ2dlcihjb252ZXJ0RG9tYWluVG9DYXRlZ29yeSh0aGlzLmZyYW1lTmFtZSwgXCJmcmFtZVwiKSk7XG4gIH1cblxuICBnZXREQih3aGljaDogREJQcmVzZXQpOiBLbmV4IHtcbiAgICByZXR1cm4gREIuZ2V0REIod2hpY2gpO1xuICB9XG5cbiAgZ2V0UHVyaSh3aGljaDogREJQcmVzZXQpOiBQdXJpV3JhcHBlciB7XG4gICAgLy8g7Yq4656c7J6t7IWYIOy7qO2FjeyKpO2KuOyXkOyEnCDtirjrnpzsnq3shZgg7ZqN65OdXG4gICAgY29uc3QgdHJ4ID0gREIuZ2V0VHJhbnNhY3Rpb25Db250ZXh0KCkuZ2V0VHJhbnNhY3Rpb24od2hpY2gpO1xuICAgIGlmICh0cngpIHtcbiAgICAgIHJldHVybiB0cng7XG4gICAgfVxuXG4gICAgLy8g7Yq4656c7J6t7IWY7J20IOyXhuycvOuptCDsg4jroZzsmrQgUHVyaVdyYXBwZXIg67CY7ZmYXG4gICAgY29uc3QgZGIgPSB0aGlzLmdldERCKHdoaWNoKTtcbiAgICByZXR1cm4gbmV3IFB1cmlXcmFwcGVyKGRiLCBuZXcgVXBzZXJ0QnVpbGRlcigpKTtcbiAgfVxuXG4gIGdldFVwc2VydEJ1aWxkZXIoKSB7XG4gICAgcmV0dXJuIG5ldyBVcHNlcnRCdWlsZGVyKCk7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O1NBTW1DO21CQUNtQjtxQkFDSTtlQUNFO0NBRXRDLGlCQUF0QixNQUFxQztFQUdQO0VBRjVCO0VBRUEsWUFBWSxZQUFvQyxLQUFLLFlBQVksTUFBTTtHQUEzQyxLQUFBLFlBQUE7R0FDMUIsS0FBSyxTQUFTLFVBQVUsd0JBQXdCLEtBQUssV0FBVyxPQUFPLENBQUM7RUFDMUU7RUFFQSxNQUFNLE9BQXVCO0dBQzNCLE9BQU8sR0FBRyxNQUFNLEtBQUs7RUFDdkI7RUFFQSxRQUFRLE9BQThCO0dBRXBDLE1BQU0sTUFBTSxHQUFHLHNCQUFzQixDQUFDLENBQUMsZUFBZSxLQUFLO0dBQzNELElBQUksS0FDRixPQUFPO0dBS1QsT0FBTyxJQUFJLFlBREEsS0FBSyxNQUFNLEtBQ0MsR0FBSSxJQUFJLGNBQWMsQ0FBQztFQUNoRDtFQUVBLG1CQUFtQjtHQUNqQixPQUFPLElBQUksY0FBYztFQUMzQjtDQUNGIn0=
38
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1mcmFtZS5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBpL2Jhc2UtZnJhbWUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0TG9nZ2VyIH0gZnJvbSBcIkBsb2d0YXBlL2xvZ3RhcGVcIjtcbmltcG9ydCB7IHR5cGUgTG9nZ2VyIH0gZnJvbSBcIkBsb2d0YXBlL2xvZ3RhcGVcIjtcbmltcG9ydCB7IHR5cGUgS25leCB9IGZyb20gXCJrbmV4XCI7XG5cbmltcG9ydCB7IHR5cGUgREJQcmVzZXQgfSBmcm9tIFwiLi4vZGF0YWJhc2UvZGJcIjtcbi8vIFN0YXRpYyBpbXBvcnRzIGtlcHQgZm9yIG5vbi1hc3luYyBmdW5jdGlvbnMgKGdldERCLCBnZXRQdXJpLCBnZXRVcHNlcnRCdWlsZGVyKVxuaW1wb3J0IHsgREIgfSBmcm9tIFwiLi4vZGF0YWJhc2UvZGJcIjtcbmltcG9ydCB7IFB1cmlXcmFwcGVyIH0gZnJvbSBcIi4uL2RhdGFiYXNlL3B1cmktd3JhcHBlclwiO1xuaW1wb3J0IHsgVXBzZXJ0QnVpbGRlciB9IGZyb20gXCIuLi9kYXRhYmFzZS91cHNlcnQtYnVpbGRlclwiO1xuaW1wb3J0IHsgY29udmVydERvbWFpblRvQ2F0ZWdvcnkgfSBmcm9tIFwiLi4vbG9nZ2VyL2NhdGVnb3J5XCI7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlRnJhbWVDbGFzcyB7XG4gIHByb3RlY3RlZCByZWFkb25seSBsb2dnZXI6IExvZ2dlcjtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgZnJhbWVOYW1lOiBzdHJpbmcgPSB0aGlzLmNvbnN0cnVjdG9yLm5hbWUpIHtcbiAgICB0aGlzLmxvZ2dlciA9IGdldExvZ2dlcihjb252ZXJ0RG9tYWluVG9DYXRlZ29yeSh0aGlzLmZyYW1lTmFtZSwgXCJmcmFtZVwiKSk7XG4gIH1cblxuICBnZXREQih3aGljaDogREJQcmVzZXQpOiBLbmV4IHtcbiAgICByZXR1cm4gREIuZ2V0REIod2hpY2gpO1xuICB9XG5cbiAgZ2V0UHVyaSh3aGljaDogREJQcmVzZXQpOiBQdXJpV3JhcHBlciB7XG4gICAgLy8g7Yq4656c7J6t7IWYIOy7qO2FjeyKpO2KuOyXkOyEnCDtirjrnpzsnq3shZgg7ZqN65OdXG4gICAgY29uc3QgdHJ4ID0gREIuZ2V0VHJhbnNhY3Rpb25Db250ZXh0KCkuZ2V0VHJhbnNhY3Rpb24od2hpY2gpO1xuICAgIGlmICh0cngpIHtcbiAgICAgIHJldHVybiB0cng7XG4gICAgfVxuXG4gICAgLy8g7Yq4656c7J6t7IWY7J20IOyXhuycvOuptCDsg4jroZzsmrQgUHVyaVdyYXBwZXIg67CY7ZmYXG4gICAgY29uc3QgZGIgPSB0aGlzLmdldERCKHdoaWNoKTtcbiAgICByZXR1cm4gbmV3IFB1cmlXcmFwcGVyKGRiLCBuZXcgVXBzZXJ0QnVpbGRlcigpKTtcbiAgfVxuXG4gIGdldFVwc2VydEJ1aWxkZXIoKSB7XG4gICAgcmV0dXJuIG5ldyBVcHNlcnRCdWlsZGVyKCk7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0NBTW1DLFFBQUE7Q0FDbUIsa0JBQUE7Q0FDSSxvQkFBQTtDQUNFLGNBQUE7Q0FFdEMsaUJBQXRCLE1BQXFDO0VBR1A7RUFGNUI7RUFFQSxZQUFZLFlBQW9DLEtBQUssWUFBWSxNQUFNO0dBQTNDLEtBQUEsWUFBQTtHQUMxQixLQUFLLFNBQVMsVUFBVSx3QkFBd0IsS0FBSyxXQUFXLE9BQU8sQ0FBQztFQUMxRTtFQUVBLE1BQU0sT0FBdUI7R0FDM0IsT0FBTyxHQUFHLE1BQU0sS0FBSztFQUN2QjtFQUVBLFFBQVEsT0FBOEI7R0FFcEMsTUFBTSxNQUFNLEdBQUcsc0JBQXNCLENBQUMsQ0FBQyxlQUFlLEtBQUs7R0FDM0QsSUFBSSxLQUNGLE9BQU87R0FJVCxNQUFNLEtBQUssS0FBSyxNQUFNLEtBQUs7R0FDM0IsT0FBTyxJQUFJLFlBQVksSUFBSSxJQUFJLGNBQWMsQ0FBQztFQUNoRDtFQUVBLG1CQUFtQjtHQUNqQixPQUFPLElBQUksY0FBYztFQUMzQjtDQUNGIn0=
@@ -1,5 +1,5 @@
1
1
  import { z } from "zod";
2
2
  import { type $ZodType } from "zod/v4/core";
3
3
  export declare function caster(zodType: $ZodType, raw: any): any;
4
- export declare function fastifyCaster(schema: z.ZodObject<any>): z.ZodPipe<z.ZodTransform<any, any>, z.ZodObject<any, z.core.$strip>>;
4
+ export declare function fastifyCaster(schema: z.ZodObject<any>): z.ZodPreprocess<z.ZodObject<any, z.core.$strip>, any>;
5
5
  //# sourceMappingURL=caster.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"caster.d.ts","sourceRoot":"","sources":["../../src/api/caster.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AA4B5C,wBAAgB,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,CA+CvD;AAGD,wBAAgB,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,wEAKrD"}
1
+ {"version":3,"file":"caster.d.ts","sourceRoot":"","sources":["../../src/api/caster.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AA4B5C,wBAAgB,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,CA+CvD;AAGD,wBAAgB,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,yDAKrD"}
@@ -2,7 +2,7 @@ import { __esmMin } from "../_virtual/_rolldown/runtime.js";
2
2
  import { init_runtime_value, isObjectValue, isStringValue } from "../utils/runtime-value.js";
3
3
  import { z } from "zod";
4
4
  import assert from "assert";
5
- //#region src/api/caster.ts
5
+ // src/api/caster.ts
6
6
  function isNumberType(zodType) {
7
7
  return zodType instanceof z.ZodNumber;
8
8
  }
@@ -16,12 +16,13 @@ function isZodNumberAnyway(zodType) {
16
16
  }
17
17
  function caster(zodType, raw) {
18
18
  if (isZodNumberAnyway(zodType) && isStringValue(raw)) return Number(raw);
19
- else if (zodType instanceof z.ZodUnion && zodType.options.some((opt) => isZodNumberAnyway(opt))) if (Array.isArray(raw)) {
20
- const numType = zodType.options.find((opt) => isNumberType(opt));
21
- assert(numType !== void 0);
22
- return raw.map((elem) => caster(numType, elem));
23
- } else return Number(raw);
24
- else if (zodType instanceof z.ZodBoolean && (raw === "true" || raw === "false")) return raw === "true";
19
+ else if (zodType instanceof z.ZodUnion && zodType.options.some((opt) => isZodNumberAnyway(opt))) {
20
+ if (Array.isArray(raw)) {
21
+ const numType = zodType.options.find((opt) => isNumberType(opt));
22
+ assert(numType !== void 0);
23
+ return raw.map((elem) => caster(numType, elem));
24
+ } else return Number(raw);
25
+ } else if (zodType instanceof z.ZodBoolean && (raw === "true" || raw === "false")) return raw === "true";
25
26
  else if (raw !== null && Array.isArray(raw) && zodType instanceof z.ZodArray) return raw.map((elem) => caster(zodType.element, elem));
26
27
  else if (zodType instanceof z.ZodObject && isObjectValue(raw) && raw !== null) return Object.fromEntries(Object.keys(raw).map((rawKey) => [rawKey, caster(zodType["shape"][rawKey], raw[rawKey])]));
27
28
  else if (zodType instanceof z.ZodOptional) return caster(zodType.def.innerType, raw);
@@ -37,8 +38,7 @@ function fastifyCaster(schema) {
37
38
  var init_caster = __esmMin((() => {
38
39
  init_runtime_value();
39
40
  }));
40
- //#endregion
41
41
  init_caster();
42
42
  export { caster, fastifyCaster, init_caster };
43
43
 
44
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzdGVyLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGkvY2FzdGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSBcImFzc2VydFwiO1xuXG5pbXBvcnQgeyB6IH0gZnJvbSBcInpvZFwiO1xuaW1wb3J0IHsgdHlwZSAkWm9kVHlwZSB9IGZyb20gXCJ6b2QvdjQvY29yZVwiO1xuXG5pbXBvcnQgeyBpc09iamVjdFZhbHVlLCBpc1N0cmluZ1ZhbHVlIH0gZnJvbSBcIi4uL3V0aWxzL3J1bnRpbWUtdmFsdWVcIjtcblxuZnVuY3Rpb24gaXNOdW1iZXJUeXBlKHpvZFR5cGU6ICRab2RUeXBlKTogem9kVHlwZSBpcyB6LlpvZE51bWJlciB7XG4gIHJldHVybiB6b2RUeXBlIGluc3RhbmNlb2Ygei5ab2ROdW1iZXI7XG59XG5cbmZ1bmN0aW9uIGlzTnVsbE9yT3B0aW9uYWwoem9kVHlwZTogJFpvZFR5cGUpOiB6b2RUeXBlIGlzIHouWm9kTnVsbGFibGUgfCB6LlpvZE9wdGlvbmFsIHtcbiAgcmV0dXJuIHpvZFR5cGUgaW5zdGFuY2VvZiB6LlpvZE51bGxhYmxlIHx8IHpvZFR5cGUgaW5zdGFuY2VvZiB6LlpvZE9wdGlvbmFsO1xufVxuXG4vLyBvcHRpb25hbCwgbnVsbGFibGUg66y06rSA7ZWY6rKMIFpvZE51bWJlciDssrTtgaxcbmZ1bmN0aW9uIGlzWm9kTnVtYmVyQW55d2F5KHpvZFR5cGU6ICRab2RUeXBlKSB7XG4gIGlmIChpc051bWJlclR5cGUoem9kVHlwZSkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8vIFpvZE51bGxhYmxlIOuYkOuKlCBab2RPcHRpb25hbOydvCDrlYxcbiAgaWYgKGlzTnVsbE9yT3B0aW9uYWwoem9kVHlwZSkgJiYgaXNOdW1iZXJUeXBlKHpvZFR5cGUuZGVmLmlubmVyVHlwZSkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuLy8gWm9kVHlwZeydhCDsnbTsmqntlbQgcmF366W8IFR5cGUgQ29lcmNpbmdcbi8vIG94bGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55IC0tIOy6kOyKpO2MheyXkOuKlCBhbnnqsIAg7ZWE7JqU7ZWoLlxuZXhwb3J0IGZ1bmN0aW9uIGNhc3Rlcih6b2RUeXBlOiAkWm9kVHlwZSwgcmF3OiBhbnkpOiBhbnkge1xuICBpZiAoaXNab2ROdW1iZXJBbnl3YXkoem9kVHlwZSkgJiYgaXNTdHJpbmdWYWx1ZShyYXcpKSB7XG4gICAgLy8gbnVtYmVyXG4gICAgcmV0dXJuIE51bWJlcihyYXcpO1xuICB9IGVsc2UgaWYgKFxuICAgIHpvZFR5cGUgaW5zdGFuY2VvZiB6LlpvZFVuaW9uICYmXG4gICAgem9kVHlwZS5vcHRpb25zLnNvbWUoKG9wdCkgPT4gaXNab2ROdW1iZXJBbnl3YXkob3B0KSlcbiAgKSB7XG4gICAgLy8gekFycmF5YWJsZSBOdW1iZXIg7LyA7J207IqkIOyymOumrFxuICAgIGlmIChBcnJheS5pc0FycmF5KHJhdykpIHtcbiAgICAgIGNvbnN0IG51bVR5cGUgPSB6b2RUeXBlLm9wdGlvbnMuZmluZCgob3B0KSA9PiBpc051bWJlclR5cGUob3B0KSk7XG4gICAgICBhc3NlcnQobnVtVHlwZSAhPT0gdW5kZWZpbmVkKTtcbiAgICAgIC8vIG94bGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55IC0tIOy6kOyKpO2MheyXkOuKlCBhbnnqsIAg7ZWE7JqU7ZWoLlxuICAgICAgcmV0dXJuIHJhdy5tYXAoKGVsZW06IGFueSkgPT4gY2FzdGVyKG51bVR5cGUsIGVsZW0pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIE51bWJlcihyYXcpO1xuICAgIH1cbiAgfSBlbHNlIGlmICh6b2RUeXBlIGluc3RhbmNlb2Ygei5ab2RCb29sZWFuICYmIChyYXcgPT09IFwidHJ1ZVwiIHx8IHJhdyA9PT0gXCJmYWxzZVwiKSkge1xuICAgIC8vIGJvb2xlYW5cbiAgICByZXR1cm4gcmF3ID09PSBcInRydWVcIjtcbiAgfSBlbHNlIGlmIChyYXcgIT09IG51bGwgJiYgQXJyYXkuaXNBcnJheShyYXcpICYmIHpvZFR5cGUgaW5zdGFuY2VvZiB6LlpvZEFycmF5KSB7XG4gICAgLy8gYXJyYXlcbiAgICAvLyBveGxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAtLSDsupDsiqTtjIXsl5DripQgYW556rCAIO2VhOyalO2VqC5cbiAgICByZXR1cm4gcmF3Lm1hcCgoZWxlbTogYW55KSA9PiBjYXN0ZXIoem9kVHlwZS5lbGVtZW50LCBlbGVtKSk7XG4gIH0gZWxzZSBpZiAoem9kVHlwZSBpbnN0YW5jZW9mIHouWm9kT2JqZWN0ICYmIGlzT2JqZWN0VmFsdWUocmF3KSAmJiByYXcgIT09IG51bGwpIHtcbiAgICAvLyBvYmplY3RcbiAgICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgT2JqZWN0LmtleXMocmF3KS5tYXAoKHJhd0tleSkgPT4gW3Jhd0tleSwgY2FzdGVyKHpvZFR5cGVbXCJzaGFwZVwiXVtyYXdLZXldLCByYXdbcmF3S2V5XSldKSxcbiAgICApO1xuICB9IGVsc2UgaWYgKHpvZFR5cGUgaW5zdGFuY2VvZiB6LlpvZE9wdGlvbmFsKSB7XG4gICAgLy8gb3B0aW9uYWxcbiAgICByZXR1cm4gY2FzdGVyKHpvZFR5cGUuZGVmLmlubmVyVHlwZSwgcmF3KTtcbiAgfSBlbHNlIGlmICh6b2RUeXBlIGluc3RhbmNlb2Ygei5ab2ROdWxsYWJsZSkge1xuICAgIC8vIG51bGxhYmxlXG4gICAgcmV0dXJuIGNhc3Rlcih6b2RUeXBlLmRlZi5pbm5lclR5cGUsIHJhdyk7XG4gIH0gZWxzZSBpZiAoXG4gICAgem9kVHlwZSBpbnN0YW5jZW9mIHouWm9kRGF0ZSAmJlxuICAgIHJhdyAhPT0gbnVsbCAmJlxuICAgIHJhdyAhPT0gdW5kZWZpbmVkICYmXG4gICAgbmV3IERhdGUocmF3KS50b1N0cmluZygpICE9PSBcIkludmFsaWQgRGF0ZVwiXG4gICkge1xuICAgIC8vIGRhdGVcbiAgICByZXR1cm4gbmV3IERhdGUocmF3KTtcbiAgfSBlbHNlIHtcbiAgICAvLyDrgpjrqLjsp4DripQg7LKY66asIOyViO2VqFxuICAgIHJldHVybiByYXc7XG4gIH1cbn1cblxuLy8gb3hsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgLS0g7LqQ7Iqk7YyF7JeQ64qUIGFueeqwgCDtlYTsmpTtlaguXG5leHBvcnQgZnVuY3Rpb24gZmFzdGlmeUNhc3RlcihzY2hlbWE6IHouWm9kT2JqZWN0PGFueT4pIHtcbiAgLy8gb3hsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgLS0g7LqQ7Iqk7YyF7JeQ64qUIGFueeqwgCDtlYTsmpTtlaguXG4gIHJldHVybiB6LnByZXByb2Nlc3MoKHJhdzogYW55KSA9PiB7XG4gICAgcmV0dXJuIGNhc3RlcihzY2hlbWEsIHJhdyk7XG4gIH0sIHNjaGVtYSk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7O0FBT0EsU0FBUyxhQUFhLFNBQTJDO0NBQy9ELE9BQU8sbUJBQW1CLEVBQUU7QUFDOUI7QUFFQSxTQUFTLGlCQUFpQixTQUE2RDtDQUNyRixPQUFPLG1CQUFtQixFQUFFLGVBQWUsbUJBQW1CLEVBQUU7QUFDbEU7QUFHQSxTQUFTLGtCQUFrQixTQUFtQjtDQUM1QyxJQUFJLGFBQWEsT0FBTyxHQUN0QixPQUFPO0NBSVQsSUFBSSxpQkFBaUIsT0FBTyxLQUFLLGFBQWEsUUFBUSxJQUFJLFNBQVMsR0FDakUsT0FBTztDQUdULE9BQU87QUFDVDtBQUlBLFNBQWdCLE9BQU8sU0FBbUIsS0FBZTtDQUN2RCxJQUFJLGtCQUFrQixPQUFPLEtBQUssY0FBYyxHQUFHLEdBRWpELE9BQU8sT0FBTyxHQUFHO01BQ1osSUFDTCxtQkFBbUIsRUFBRSxZQUNyQixRQUFRLFFBQVEsTUFBTSxRQUFRLGtCQUFrQixHQUFHLENBQUMsR0FHcEQsSUFBSSxNQUFNLFFBQVEsR0FBRyxHQUFHO0VBQ3RCLE1BQU0sVUFBVSxRQUFRLFFBQVEsTUFBTSxRQUFRLGFBQWEsR0FBRyxDQUFDO0VBQy9ELE9BQU8sWUFBWSxNQUFTO0VBRTVCLE9BQU8sSUFBSSxLQUFLLFNBQWMsT0FBTyxTQUFTLElBQUksQ0FBQztDQUNyRCxPQUNFLE9BQU8sT0FBTyxHQUFHO01BRWQsSUFBSSxtQkFBbUIsRUFBRSxlQUFlLFFBQVEsVUFBVSxRQUFRLFVBRXZFLE9BQU8sUUFBUTtNQUNWLElBQUksUUFBUSxRQUFRLE1BQU0sUUFBUSxHQUFHLEtBQUssbUJBQW1CLEVBQUUsVUFHcEUsT0FBTyxJQUFJLEtBQUssU0FBYyxPQUFPLFFBQVEsU0FBUyxJQUFJLENBQUM7TUFDdEQsSUFBSSxtQkFBbUIsRUFBRSxhQUFhLGNBQWMsR0FBRyxLQUFLLFFBQVEsTUFFekUsT0FBTyxPQUFPLFlBQ1osT0FBTyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssV0FBVyxDQUFDLFFBQVEsT0FBTyxRQUFRLFFBQVEsQ0FBQyxTQUFTLElBQUksT0FBTyxDQUFDLENBQUMsQ0FDMUY7TUFDSyxJQUFJLG1CQUFtQixFQUFFLGFBRTlCLE9BQU8sT0FBTyxRQUFRLElBQUksV0FBVyxHQUFHO01BQ25DLElBQUksbUJBQW1CLEVBQUUsYUFFOUIsT0FBTyxPQUFPLFFBQVEsSUFBSSxXQUFXLEdBQUc7TUFDbkMsSUFDTCxtQkFBbUIsRUFBRSxXQUNyQixRQUFRLFFBQ1IsUUFBUSxVQUNSLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxTQUFTLE1BQU0sZ0JBRzdCLE9BQU8sSUFBSSxLQUFLLEdBQUc7TUFHbkIsT0FBTztBQUVYO0FBR0EsU0FBZ0IsY0FBYyxRQUEwQjtDQUV0RCxPQUFPLEVBQUUsWUFBWSxRQUFhO0VBQ2hDLE9BQU8sT0FBTyxRQUFRLEdBQUc7Q0FDM0IsR0FBRyxNQUFNO0FBQ1g7O29CQWpGcUUifQ==
44
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzdGVyLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGkvY2FzdGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSBcImFzc2VydFwiO1xuXG5pbXBvcnQgeyB6IH0gZnJvbSBcInpvZFwiO1xuaW1wb3J0IHsgdHlwZSAkWm9kVHlwZSB9IGZyb20gXCJ6b2QvdjQvY29yZVwiO1xuXG5pbXBvcnQgeyBpc09iamVjdFZhbHVlLCBpc1N0cmluZ1ZhbHVlIH0gZnJvbSBcIi4uL3V0aWxzL3J1bnRpbWUtdmFsdWVcIjtcblxuZnVuY3Rpb24gaXNOdW1iZXJUeXBlKHpvZFR5cGU6ICRab2RUeXBlKTogem9kVHlwZSBpcyB6LlpvZE51bWJlciB7XG4gIHJldHVybiB6b2RUeXBlIGluc3RhbmNlb2Ygei5ab2ROdW1iZXI7XG59XG5cbmZ1bmN0aW9uIGlzTnVsbE9yT3B0aW9uYWwoem9kVHlwZTogJFpvZFR5cGUpOiB6b2RUeXBlIGlzIHouWm9kTnVsbGFibGUgfCB6LlpvZE9wdGlvbmFsIHtcbiAgcmV0dXJuIHpvZFR5cGUgaW5zdGFuY2VvZiB6LlpvZE51bGxhYmxlIHx8IHpvZFR5cGUgaW5zdGFuY2VvZiB6LlpvZE9wdGlvbmFsO1xufVxuXG4vLyBvcHRpb25hbCwgbnVsbGFibGUg66y06rSA7ZWY6rKMIFpvZE51bWJlciDssrTtgaxcbmZ1bmN0aW9uIGlzWm9kTnVtYmVyQW55d2F5KHpvZFR5cGU6ICRab2RUeXBlKSB7XG4gIGlmIChpc051bWJlclR5cGUoem9kVHlwZSkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8vIFpvZE51bGxhYmxlIOuYkOuKlCBab2RPcHRpb25hbOydvCDrlYxcbiAgaWYgKGlzTnVsbE9yT3B0aW9uYWwoem9kVHlwZSkgJiYgaXNOdW1iZXJUeXBlKHpvZFR5cGUuZGVmLmlubmVyVHlwZSkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuLy8gWm9kVHlwZeydhCDsnbTsmqntlbQgcmF366W8IFR5cGUgQ29lcmNpbmdcbi8vIG94bGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55IC0tIOy6kOyKpO2MheyXkOuKlCBhbnnqsIAg7ZWE7JqU7ZWoLlxuZXhwb3J0IGZ1bmN0aW9uIGNhc3Rlcih6b2RUeXBlOiAkWm9kVHlwZSwgcmF3OiBhbnkpOiBhbnkge1xuICBpZiAoaXNab2ROdW1iZXJBbnl3YXkoem9kVHlwZSkgJiYgaXNTdHJpbmdWYWx1ZShyYXcpKSB7XG4gICAgLy8gbnVtYmVyXG4gICAgcmV0dXJuIE51bWJlcihyYXcpO1xuICB9IGVsc2UgaWYgKFxuICAgIHpvZFR5cGUgaW5zdGFuY2VvZiB6LlpvZFVuaW9uICYmXG4gICAgem9kVHlwZS5vcHRpb25zLnNvbWUoKG9wdCkgPT4gaXNab2ROdW1iZXJBbnl3YXkob3B0KSlcbiAgKSB7XG4gICAgLy8gekFycmF5YWJsZSBOdW1iZXIg7LyA7J207IqkIOyymOumrFxuICAgIGlmIChBcnJheS5pc0FycmF5KHJhdykpIHtcbiAgICAgIGNvbnN0IG51bVR5cGUgPSB6b2RUeXBlLm9wdGlvbnMuZmluZCgob3B0KSA9PiBpc051bWJlclR5cGUob3B0KSk7XG4gICAgICBhc3NlcnQobnVtVHlwZSAhPT0gdW5kZWZpbmVkKTtcbiAgICAgIC8vIG94bGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55IC0tIOy6kOyKpO2MheyXkOuKlCBhbnnqsIAg7ZWE7JqU7ZWoLlxuICAgICAgcmV0dXJuIHJhdy5tYXAoKGVsZW06IGFueSkgPT4gY2FzdGVyKG51bVR5cGUsIGVsZW0pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIE51bWJlcihyYXcpO1xuICAgIH1cbiAgfSBlbHNlIGlmICh6b2RUeXBlIGluc3RhbmNlb2Ygei5ab2RCb29sZWFuICYmIChyYXcgPT09IFwidHJ1ZVwiIHx8IHJhdyA9PT0gXCJmYWxzZVwiKSkge1xuICAgIC8vIGJvb2xlYW5cbiAgICByZXR1cm4gcmF3ID09PSBcInRydWVcIjtcbiAgfSBlbHNlIGlmIChyYXcgIT09IG51bGwgJiYgQXJyYXkuaXNBcnJheShyYXcpICYmIHpvZFR5cGUgaW5zdGFuY2VvZiB6LlpvZEFycmF5KSB7XG4gICAgLy8gYXJyYXlcbiAgICAvLyBveGxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAtLSDsupDsiqTtjIXsl5DripQgYW556rCAIO2VhOyalO2VqC5cbiAgICByZXR1cm4gcmF3Lm1hcCgoZWxlbTogYW55KSA9PiBjYXN0ZXIoem9kVHlwZS5lbGVtZW50LCBlbGVtKSk7XG4gIH0gZWxzZSBpZiAoem9kVHlwZSBpbnN0YW5jZW9mIHouWm9kT2JqZWN0ICYmIGlzT2JqZWN0VmFsdWUocmF3KSAmJiByYXcgIT09IG51bGwpIHtcbiAgICAvLyBvYmplY3RcbiAgICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgT2JqZWN0LmtleXMocmF3KS5tYXAoKHJhd0tleSkgPT4gW3Jhd0tleSwgY2FzdGVyKHpvZFR5cGVbXCJzaGFwZVwiXVtyYXdLZXldLCByYXdbcmF3S2V5XSldKSxcbiAgICApO1xuICB9IGVsc2UgaWYgKHpvZFR5cGUgaW5zdGFuY2VvZiB6LlpvZE9wdGlvbmFsKSB7XG4gICAgLy8gb3B0aW9uYWxcbiAgICByZXR1cm4gY2FzdGVyKHpvZFR5cGUuZGVmLmlubmVyVHlwZSwgcmF3KTtcbiAgfSBlbHNlIGlmICh6b2RUeXBlIGluc3RhbmNlb2Ygei5ab2ROdWxsYWJsZSkge1xuICAgIC8vIG51bGxhYmxlXG4gICAgcmV0dXJuIGNhc3Rlcih6b2RUeXBlLmRlZi5pbm5lclR5cGUsIHJhdyk7XG4gIH0gZWxzZSBpZiAoXG4gICAgem9kVHlwZSBpbnN0YW5jZW9mIHouWm9kRGF0ZSAmJlxuICAgIHJhdyAhPT0gbnVsbCAmJlxuICAgIHJhdyAhPT0gdW5kZWZpbmVkICYmXG4gICAgbmV3IERhdGUocmF3KS50b1N0cmluZygpICE9PSBcIkludmFsaWQgRGF0ZVwiXG4gICkge1xuICAgIC8vIGRhdGVcbiAgICByZXR1cm4gbmV3IERhdGUocmF3KTtcbiAgfSBlbHNlIHtcbiAgICAvLyDrgpjrqLjsp4DripQg7LKY66asIOyViO2VqFxuICAgIHJldHVybiByYXc7XG4gIH1cbn1cblxuLy8gb3hsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgLS0g7LqQ7Iqk7YyF7JeQ64qUIGFueeqwgCDtlYTsmpTtlaguXG5leHBvcnQgZnVuY3Rpb24gZmFzdGlmeUNhc3RlcihzY2hlbWE6IHouWm9kT2JqZWN0PGFueT4pIHtcbiAgLy8gb3hsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgLS0g7LqQ7Iqk7YyF7JeQ64qUIGFueeqwgCDtlYTsmpTtlaguXG4gIHJldHVybiB6LnByZXByb2Nlc3MoKHJhdzogYW55KSA9PiB7XG4gICAgcmV0dXJuIGNhc3RlcihzY2hlbWEsIHJhdyk7XG4gIH0sIHNjaGVtYSk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7O0FBT0EsU0FBUyxhQUFhLFNBQTJDO0NBQy9ELE9BQU8sbUJBQW1CLEVBQUU7QUFDOUI7QUFFQSxTQUFTLGlCQUFpQixTQUE2RDtDQUNyRixPQUFPLG1CQUFtQixFQUFFLGVBQWUsbUJBQW1CLEVBQUU7QUFDbEU7QUFHQSxTQUFTLGtCQUFrQixTQUFtQjtDQUM1QyxJQUFJLGFBQWEsT0FBTyxHQUN0QixPQUFPO0NBSVQsSUFBSSxpQkFBaUIsT0FBTyxLQUFLLGFBQWEsUUFBUSxJQUFJLFNBQVMsR0FDakUsT0FBTztDQUdULE9BQU87QUFDVDtBQUlBLFNBQWdCLE9BQU8sU0FBbUIsS0FBZTtDQUN2RCxJQUFJLGtCQUFrQixPQUFPLEtBQUssY0FBYyxHQUFHLEdBRWpELE9BQU8sT0FBTyxHQUFHO01BQ1osSUFDTCxtQkFBbUIsRUFBRSxZQUNyQixRQUFRLFFBQVEsTUFBTSxRQUFRLGtCQUFrQixHQUFHLENBQUMsR0FDcEQ7RUFFQSxJQUFJLE1BQU0sUUFBUSxHQUFHLEdBQUc7R0FDdEIsTUFBTSxVQUFVLFFBQVEsUUFBUSxNQUFNLFFBQVEsYUFBYSxHQUFHLENBQUM7R0FDL0QsT0FBTyxZQUFZLE1BQVM7R0FFNUIsT0FBTyxJQUFJLEtBQUssU0FBYyxPQUFPLFNBQVMsSUFBSSxDQUFDO0VBQ3JELE9BQ0UsT0FBTyxPQUFPLEdBQUc7Q0FFckIsT0FBTyxJQUFJLG1CQUFtQixFQUFFLGVBQWUsUUFBUSxVQUFVLFFBQVEsVUFFdkUsT0FBTyxRQUFRO01BQ1YsSUFBSSxRQUFRLFFBQVEsTUFBTSxRQUFRLEdBQUcsS0FBSyxtQkFBbUIsRUFBRSxVQUdwRSxPQUFPLElBQUksS0FBSyxTQUFjLE9BQU8sUUFBUSxTQUFTLElBQUksQ0FBQztNQUN0RCxJQUFJLG1CQUFtQixFQUFFLGFBQWEsY0FBYyxHQUFHLEtBQUssUUFBUSxNQUV6RSxPQUFPLE9BQU8sWUFDWixPQUFPLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxXQUFXLENBQUMsUUFBUSxPQUFPLFFBQVEsUUFBUSxDQUFDLFNBQVMsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUMxRjtNQUNLLElBQUksbUJBQW1CLEVBQUUsYUFFOUIsT0FBTyxPQUFPLFFBQVEsSUFBSSxXQUFXLEdBQUc7TUFDbkMsSUFBSSxtQkFBbUIsRUFBRSxhQUU5QixPQUFPLE9BQU8sUUFBUSxJQUFJLFdBQVcsR0FBRztNQUNuQyxJQUNMLG1CQUFtQixFQUFFLFdBQ3JCLFFBQVEsUUFDUixRQUFRLFVBQ1IsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLFNBQVMsTUFBTSxnQkFHN0IsT0FBTyxJQUFJLEtBQUssR0FBRztNQUduQixPQUFPO0FBRVg7QUFHQSxTQUFnQixjQUFjLFFBQTBCO0NBRXRELE9BQU8sRUFBRSxZQUFZLFFBQWE7RUFDaEMsT0FBTyxPQUFPLFFBQVEsR0FBRztDQUMzQixHQUFHLE1BQU07QUFDWDs7Q0FqRnFFLG1CQUFBIn0=
@@ -1,7 +1,7 @@
1
1
  import { __esmMin } from "../_virtual/_rolldown/runtime.js";
2
2
  import { ApiParamType, init_types } from "../types/types.js";
3
3
  import { z } from "zod";
4
- //#region src/api/code-converters.ts
4
+ // src/api/code-converters.ts
5
5
  /**
6
6
  * code-converters는 API 타입 정의들을 Zod 객체나 TypeScript 코드로 변환하는 함수들을 제공합니다.
7
7
  *
@@ -80,8 +80,10 @@ function getZodTypeFromApiParamType(input, references) {
80
80
  }
81
81
  case "union": {
82
82
  const unionType = paramType;
83
- if (unionType.types.length === 2 && unionType.types.some((type) => type === "null")) if (unionType.types[0] === "null") return getZodTypeFromApiParamType(unionType.types[1], references).nullable();
84
- else return getZodTypeFromApiParamType(unionType.types[0], references).nullable();
83
+ if (unionType.types.length === 2 && unionType.types.some((type) => type === "null")) {
84
+ if (unionType.types[0] === "null") return getZodTypeFromApiParamType(unionType.types[1], references).nullable();
85
+ else return getZodTypeFromApiParamType(unionType.types[0], references).nullable();
86
+ }
85
87
  return z.union(unionType.types.map((type) => getZodTypeFromApiParamType(type, references)));
86
88
  }
87
89
  case "intersection": return paramType.types.reduce((result, type, index) => {
@@ -257,8 +259,7 @@ var init_code_converters = __esmMin((() => {
257
259
  })
258
260
  ]));
259
261
  }));
260
- //#endregion
261
262
  init_code_converters();
262
263
  export { apiParamToTsCode, apiParamToTsCodeAsObject, apiParamTypeToTsType, getZodObjectFromApi, getZodObjectFromApiParams, getZodTypeFromApiParamType, init_code_converters, parseApiParamType, unwrapPromiseOnce };
263
264
 
264
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1jb252ZXJ0ZXJzLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGkvY29kZS1jb252ZXJ0ZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogY29kZS1jb252ZXJ0ZXJz64qUIEFQSSDtg4DsnoUg7KCV7J2Y65Ok7J2EIFpvZCDqsJ3ssrTrgpggVHlwZVNjcmlwdCDsvZTrk5zroZwg67OA7ZmY7ZWY64qUIO2VqOyImOuTpOydhCDsoJzqs7Xtlanri4jri6QuXG4gKlxuICogMS4gQVBJIOyLnOumrOymiOuTpDpcbiAqIC0gRXh0ZW5kZWRBcGksIEFwaVBhcmFtLCBBcGlQYXJhbVR5cGVcbiAqIC0gQVBJIOuplO2DgOuNsOydtO2EsOulvCDtkZztmITtlZjripQg7YOA7J6FIOygleydmOuTpFxuICpcbiAqIDIuIFpvZE9iamVjdCDrs4DtmZhcbiAqIC0gQVBJIO2DgOyehSDsoJXsnZgg4oaSIFpvZCDtg4DsnoUg7J247Iqk7YS07IqkICjrn7Dtg4DsnoQg67C466as642w7J207IWY7JqpKVxuICogLSBnZXRab2RUeXBlRnJvbUFwaVBhcmFtVHlwZSDihpIgZ2V0Wm9kT2JqZWN0RnJvbUFwaVBhcmFtcyDihpIgZ2V0Wm9kT2JqZWN0RnJvbUFwaVxuICpcbiAqIDMuIFRzVHlwZURlZiDrs4DtmZhcbiAqIC0gQVBJIO2DgOyehSDsoJXsnZgg4oaSIFR5cGVTY3JpcHQg7YOA7J6FIOy9lOuTnCDrrLjsnpDsl7QgKOy9lOuTnCDsg53shLHsmqkpXG4gKiAtIGFwaVBhcmFtVHlwZVRvVHNUeXBlIOKGkiBhcGlQYXJhbVRvVHNDb2RlLCBhcGlQYXJhbVRvVHNDb2RlQXNPYmplY3RcbiAqXG4gKiDssLjqs6A6XG4gKiAtIFpvZFR5cGVEZWYg7IOd7ISxIChab2Qg7L2U65OcIOusuOyekOyXtCk6IHpvZC1jb252ZXJ0ZXIudHPsnZggem9kVHlwZVRvWm9kQ29kZSDsgqzsmqlcbiAqIC0gRW50aXR5UHJvcCDrs4DtmZg6IHpvZC1jb252ZXJ0ZXIudHMg7LC47KGwXG4gKi9cblxuaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIjtcblxuaW1wb3J0IHsgQXBpUGFyYW1UeXBlIH0gZnJvbSBcIi4uL3R5cGVzL3R5cGVzXCI7XG5pbXBvcnQgeyB0eXBlIEFwaVBhcmFtIH0gZnJvbSBcIi4uL3R5cGVzL3R5cGVzXCI7XG5pbXBvcnQgeyB0eXBlIEV4dGVuZGVkQXBpIH0gZnJvbSBcIi4vZGVjb3JhdG9yc1wiO1xuXG4vLyA8YW55PuulvCDsnpDsoJztlZjqs6AsIFpvZOyXkOyEnCDsoJzslb3tlZjripQg6riw67O47KCB7J24IEdlbmVyaWMgVHlwZSBQYXJhbWV0ZXLrpbwg7IKs7Jqp7ZWoLlxudHlwZSBBbnlab2RPYmplY3QgPSB6LlpvZE9iamVjdDtcbnR5cGUgQW55Wm9kTGl0ZXJhbCA9IHouWm9kTGl0ZXJhbDtcblxuY29uc3QgQXBpUGFyYW1UeXBlU2NoZW1hOiB6LlpvZFR5cGU8QXBpUGFyYW1UeXBlPiA9IHoubGF6eSgoKSA9PlxuICB6LnVuaW9uKFtcbiAgICB6LmVudW0oW1xuICAgICAgXCJzdHJpbmdcIixcbiAgICAgIFwibnVtYmVyXCIsXG4gICAgICBcImJvb2xlYW5cIixcbiAgICAgIFwibnVsbFwiLFxuICAgICAgXCJ1bmRlZmluZWRcIixcbiAgICAgIFwidm9pZFwiLFxuICAgICAgXCJhbnlcIixcbiAgICAgIFwidW5rbm93blwiLFxuICAgICAgXCJ0cnVlXCIsXG4gICAgICBcImZhbHNlXCIsXG4gICAgXSksXG4gICAgei5vYmplY3QoeyB0OiB6LmxpdGVyYWwoXCJzdHJpbmctbGl0ZXJhbFwiKSwgdmFsdWU6IHouc3RyaW5nKCkgfSksXG4gICAgei5vYmplY3QoeyB0OiB6LmxpdGVyYWwoXCJudW1lcmljLWxpdGVyYWxcIiksIHZhbHVlOiB6Lm51bWJlcigpIH0pLFxuICAgIHoub2JqZWN0KHtcbiAgICAgIHQ6IHoubGl0ZXJhbChcIm9iamVjdFwiKSxcbiAgICAgIHByb3BzOiB6LmFycmF5KFxuICAgICAgICB6Lm9iamVjdCh7XG4gICAgICAgICAgbmFtZTogei5zdHJpbmcoKSxcbiAgICAgICAgICB0eXBlOiBBcGlQYXJhbVR5cGVTY2hlbWEsXG4gICAgICAgICAgb3B0aW9uYWw6IHouYm9vbGVhbigpLFxuICAgICAgICAgIGRlZmF1bHREZWY6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICAgICAgfSksXG4gICAgICApLFxuICAgIH0pLFxuICAgIHoub2JqZWN0KHsgdDogei5saXRlcmFsKFwidW5pb25cIiksIHR5cGVzOiB6LmFycmF5KEFwaVBhcmFtVHlwZVNjaGVtYSkgfSksXG4gICAgei5vYmplY3QoeyB0OiB6LmxpdGVyYWwoXCJpbnRlcnNlY3Rpb25cIiksIHR5cGVzOiB6LmFycmF5KEFwaVBhcmFtVHlwZVNjaGVtYSkgfSksXG4gICAgei5vYmplY3QoeyB0OiB6LmxpdGVyYWwoXCJhcnJheVwiKSwgZWxlbWVudHNUeXBlOiBBcGlQYXJhbVR5cGVTY2hlbWEgfSksXG4gICAgei5vYmplY3Qoe1xuICAgICAgdDogei5saXRlcmFsKFwicmVmXCIpLFxuICAgICAgaWQ6IHouc3RyaW5nKCksXG4gICAgICBhcmdzOiB6LmFycmF5KEFwaVBhcmFtVHlwZVNjaGVtYSkub3B0aW9uYWwoKSxcbiAgICB9KSxcbiAgICB6Lm9iamVjdCh7XG4gICAgICB0OiB6LmxpdGVyYWwoXCJpbmRleGVkLWFjY2Vzc1wiKSxcbiAgICAgIG9iamVjdDogQXBpUGFyYW1UeXBlU2NoZW1hLFxuICAgICAgaW5kZXg6IEFwaVBhcmFtVHlwZVNjaGVtYSxcbiAgICB9KSxcbiAgICB6Lm9iamVjdCh7XG4gICAgICB0OiB6LmxpdGVyYWwoXCJ0eXBlLXBhcmFtXCIpLFxuICAgICAgaWQ6IHouc3RyaW5nKCksXG4gICAgICBjb25zdHJhaW50OiBBcGlQYXJhbVR5cGVTY2hlbWEub3B0aW9uYWwoKSxcbiAgICB9KSxcbiAgICB6Lm9iamVjdCh7IHQ6IHoubGl0ZXJhbChcInR1cGxlLXR5cGVcIiksIGVsZW1lbnRzOiB6LmFycmF5KEFwaVBhcmFtVHlwZVNjaGVtYSkgfSksXG4gICAgei5vYmplY3Qoe1xuICAgICAgdDogei5saXRlcmFsKFwiZnVuY3Rpb25cIiksXG4gICAgICBwYXJhbWV0ZXJzOiB6LmFycmF5KFxuICAgICAgICB6Lm9iamVjdCh7XG4gICAgICAgICAgbmFtZTogei5zdHJpbmcoKSxcbiAgICAgICAgICB0eXBlOiBBcGlQYXJhbVR5cGVTY2hlbWEsXG4gICAgICAgICAgb3B0aW9uYWw6IHouYm9vbGVhbigpLFxuICAgICAgICAgIGRlZmF1bHREZWY6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICAgICAgfSksXG4gICAgICApLFxuICAgICAgcmV0dXJuVHlwZTogQXBpUGFyYW1UeXBlU2NoZW1hLFxuICAgIH0pLFxuICBdKSxcbik7XG5cbi8qKiDsi6DrorDtlaAg7IiYIOyXhuuKlCDqsJLsnYQgQXBpUGFyYW1UeXBlIOqyveqzhOyXkOyEnCDqsoDspp3tlanri4jri6QuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VBcGlQYXJhbVR5cGU8SW5wdXQ+KGlucHV0OiBJbnB1dCk6IEFwaVBhcmFtVHlwZSB7XG4gIGNvbnN0IHJlc3VsdCA9IEFwaVBhcmFtVHlwZVNjaGVtYS5zYWZlUGFyc2UoaW5wdXQpO1xuICBpZiAoIXJlc3VsdC5zdWNjZXNzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGByZXNvbHZlIOu2iOqwgCBBcGlQYXJhbVR5cGU6ICR7ei5wcmV0dGlmeUVycm9yKHJlc3VsdC5lcnJvcil9YCk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdC5kYXRhO1xufVxuXG4vKipcbiAqIFByb21pc2Ug7YOA7J6F7J2EIO2VnCDrsogg7Ja4656Y7ZWR7ZWY7JesIOuCtOu2gCDtg4DsnoXsnYQg67CY7ZmY7ZWp64uI64ukLlxuICogUHJvbWlzZeqwgCDslYTri4wg6rK97JqwIOybkOuzuCDtg4DsnoXsnYQg6re464yA66GcIOuwmO2ZmO2VqeuLiOuLpC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVud3JhcFByb21pc2VPbmNlKHBhcmFtVHlwZTogQXBpUGFyYW1UeXBlKSB7XG4gIGlmIChBcGlQYXJhbVR5cGUuaXNQcm9taXNlKHBhcmFtVHlwZSkpIHtcbiAgICByZXR1cm4gcGFyYW1UeXBlLmFyZ3M/LlswXTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gcGFyYW1UeXBlO1xuICB9XG59XG5cbi8qXG4gKiBBUEnrpbwg6rWs7ISx7ZWY64qUIOyalOyGjOuTpOydhCBab2RPYmplY3TroZwg67OA7ZmY7ZWY6riwIOychO2VnCDtlajsiJjrk6TsnoXri4jri6QuXG4gKi9cblxuLyoqXG4gKiBBcGlQYXJhbVR5cGXsnYQgWm9kIO2DgOyehSDsnbjsiqTthLTsiqTroZwg67OA7ZmY7ZWp64uI64ukLlxuICogc3RyaW5nLCBudW1iZXIsIGFycmF5LCB1bmlvbiDrk7Eg66qo65OgIEFwaVBhcmFtVHlwZeydhCDsspjrpqztlZjrqbAsXG4gKiDsiJztmZjssLjsobDqsIAg67Cc7IOd7ZWY64qUIOqyveyasCB6LnVua25vd24oKeycvOuhnCBmYWxsYmFja+2VqeuLiOuLpC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFpvZFR5cGVGcm9tQXBpUGFyYW1UeXBlPElucHV0PihcbiAgaW5wdXQ6IElucHV0LFxuICByZWZlcmVuY2VzOiB7XG4gICAgW2lkOiBzdHJpbmddOiB6LlpvZFR5cGU7XG4gIH0sXG4pOiB6LlpvZFR5cGUge1xuICBjb25zdCBwYXJhbVR5cGUgPSBwYXJzZUFwaVBhcmFtVHlwZShpbnB1dCk7XG4gIHN3aXRjaCAocGFyYW1UeXBlKSB7XG4gICAgY2FzZSBcInN0cmluZ1wiOlxuICAgICAgcmV0dXJuIHouc3RyaW5nKCk7XG4gICAgY2FzZSBcIm51bWJlclwiOlxuICAgICAgcmV0dXJuIHoubnVtYmVyKCk7XG4gICAgY2FzZSBcImJvb2xlYW5cIjpcbiAgICAgIHJldHVybiB6LmJvb2xlYW4oKTtcbiAgICBkZWZhdWx0OiB7XG4gICAgICBjb25zdCBhZHZUeXBlID1cbiAgICAgICAgLyogU0FGRVRZOiBBUEkg642w7L2U66CI7J207YSw7JmAIFpvZCDqsoDspp3quLAg65Ox66GdIOqzhOyVveydtCDsnbQg6rCS7J2YIO2DgOyeheydhCDrs7TsnqXtlZzri6QuICovIHBhcmFtVHlwZSBhcyB7XG4gICAgICAgICAgdDogc3RyaW5nO1xuICAgICAgICAgIHZhbHVlPzogc3RyaW5nIHwgbnVtYmVyO1xuICAgICAgICB9O1xuICAgICAgc3dpdGNoIChhZHZUeXBlLnQpIHtcbiAgICAgICAgY2FzZSBcInN0cmluZy1saXRlcmFsXCI6XG4gICAgICAgIGNhc2UgXCJudW1lcmljLWxpdGVyYWxcIjpcbiAgICAgICAgICByZXR1cm4gei5saXRlcmFsKGFkdlR5cGUudmFsdWUpO1xuICAgICAgICBjYXNlIFwib2JqZWN0XCI6IHtcbiAgICAgICAgICBjb25zdCBvYmpUeXBlID1cbiAgICAgICAgICAgIC8qIFNBRkVUWTogQVBJIOuNsOy9lOugiOydtO2EsOyZgCBab2Qg6rKA7Kad6riwIOuTseuhnSDqs4Tslb3snbQg7J20IOqwkuydmCDtg4DsnoXsnYQg67O07J6l7ZWc64ukLiAqLyBwYXJhbVR5cGUgYXMge1xuICAgICAgICAgICAgICB0OiBzdHJpbmc7XG4gICAgICAgICAgICAgIHByb3BzOiBBcGlQYXJhbVtdO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICByZXR1cm4gZ2V0Wm9kT2JqZWN0RnJvbUFwaVBhcmFtcyhvYmpUeXBlLnByb3BzKTtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFwiYXJyYXlcIjoge1xuICAgICAgICAgIGNvbnN0IGFyclR5cGUgPVxuICAgICAgICAgICAgLyogU0FGRVRZOiBBUEkg642w7L2U66CI7J207YSw7JmAIFpvZCDqsoDspp3quLAg65Ox66GdIOqzhOyVveydtCDsnbQg6rCS7J2YIO2DgOyeheydhCDrs7TsnqXtlZzri6QuICovIHBhcmFtVHlwZSBhcyB7XG4gICAgICAgICAgICAgIHQ6IHN0cmluZztcbiAgICAgICAgICAgICAgZWxlbWVudHNUeXBlOiBBcGlQYXJhbVR5cGU7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgIHJldHVybiB6LmFycmF5KGdldFpvZFR5cGVGcm9tQXBpUGFyYW1UeXBlKGFyclR5cGUuZWxlbWVudHNUeXBlLCByZWZlcmVuY2VzKSk7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBcInJlZlwiOiB7XG4gICAgICAgICAgY29uc3QgcmVmVHlwZSA9XG4gICAgICAgICAgICAvKiBTQUZFVFk6IEFQSSDrjbDsvZTroIjsnbTthLDsmYAgWm9kIOqygOymneq4sCDrk7HroZ0g6rOE7JW97J20IOydtCDqsJLsnZgg7YOA7J6F7J2EIOuztOyepe2VnOuLpC4gKi8gcGFyYW1UeXBlIGFzIHtcbiAgICAgICAgICAgICAgdDogc3RyaW5nO1xuICAgICAgICAgICAgICBpZDogc3RyaW5nO1xuICAgICAgICAgICAgICBhcmdzPzogQXBpUGFyYW1UeXBlW107XG4gICAgICAgICAgICB9O1xuICAgICAgICAgIC8vIERhdGUg7YOA7J6FIOyymOumrFxuICAgICAgICAgIGlmIChyZWZUeXBlLmlkID09PSBcIkRhdGVcIikge1xuICAgICAgICAgICAgcmV0dXJuIHouZGF0ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAvLyDqsJ3ssrQg7YKkIOq0gOumrCDsnKDti7jrpqzti7BcbiAgICAgICAgICBpZiAoW1wiUGlja1wiLCBcIk9taXRcIl0uaW5jbHVkZXMocmVmVHlwZS5pZCkpIHtcbiAgICAgICAgICAgIGlmIChyZWZUeXBlLmFyZ3M/Lmxlbmd0aCAhPT0gMikge1xuICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYOyemOuqu+uQnCAke3JlZlR5cGUuaWR9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBbb2JqLCBsaXRlcmFsT3JVbmlvbl0gPVxuICAgICAgICAgICAgICAvKiBTQUZFVFk6IEFQSSDrjbDsvZTroIjsnbTthLDsmYAgWm9kIOqygOymneq4sCDrk7HroZ0g6rOE7JW97J20IOydtCDqsJLsnZgg7YOA7J6F7J2EIOuztOyepe2VnOuLpC4gKi8gcmVmVHlwZS5hcmdzLm1hcChcbiAgICAgICAgICAgICAgICAoYXJnKSA9PiBnZXRab2RUeXBlRnJvbUFwaVBhcmFtVHlwZShhcmcsIHJlZmVyZW5jZXMpLFxuICAgICAgICAgICAgICApIGFzIFtBbnlab2RPYmplY3QsIHouWm9kVW5pb248YW55PiB8IEFueVpvZExpdGVyYWxdO1xuXG4gICAgICAgICAgICBsZXQga2V5czogc3RyaW5nW10gPSBbXTtcbiAgICAgICAgICAgIGlmIChsaXRlcmFsT3JVbmlvbiBpbnN0YW5jZW9mIHouWm9kVW5pb24pIHtcbiAgICAgICAgICAgICAga2V5cyA9IGxpdGVyYWxPclVuaW9uLmRlZi5vcHRpb25zLm1hcChcbiAgICAgICAgICAgICAgICAob3B0aW9uOiB7IGRlZjogeyB2YWx1ZXM6IHN0cmluZ1tdIH0gfSkgPT4gb3B0aW9uLmRlZi52YWx1ZXNbMF0sXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBrZXlzID1cbiAgICAgICAgICAgICAgICAvKiBTQUZFVFk6IEFQSSDrjbDsvZTroIjsnbTthLDsmYAgWm9kIOqygOymneq4sCDrk7HroZ0g6rOE7JW97J20IOydtCDqsJLsnZgg7YOA7J6F7J2EIOuztOyepe2VnOuLpC4gKi8gKFxuICAgICAgICAgICAgICAgICAgbGl0ZXJhbE9yVW5pb24gYXMgei5ab2RMaXRlcmFsPHN0cmluZz5cbiAgICAgICAgICAgICAgICApLmRlZi52YWx1ZXM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBrZXlSZWNvcmQgPSBPYmplY3QuZnJvbUVudHJpZXMoa2V5cy5tYXAoKGtleSkgPT4gW2tleSwgdHJ1ZSBhcyBjb25zdF0pKTtcbiAgICAgICAgICAgIGlmIChyZWZUeXBlLmlkID09PSBcIlBpY2tcIikge1xuICAgICAgICAgICAgICBpZiAob2JqLnBpY2spIHtcbiAgICAgICAgICAgICAgICAvLyBveGxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAtLSBab2QgNC4zLjYgcGljayDtg4DsnoUg7Zi47ZmY7ISxXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9iai5waWNrKFxuICAgICAgICAgICAgICAgICAgLyogU0FGRVRZOiBBUEkg642w7L2U66CI7J207YSw7JmAIFpvZCDqsoDspp3quLAg65Ox66GdIOqzhOyVveydtCDsnbQg6rCS7J2YIO2DgOyeheydhCDrs7TsnqXtlZzri6QuICovIGtleVJlY29yZCBhcyBhbnksXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgaWYgKG9iai5vbWl0KSB7XG4gICAgICAgICAgICAgICAgLy8gb3hsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgLS0gWm9kIDQuMy42IG9taXQg7YOA7J6FIO2YuO2ZmOyEsVxuICAgICAgICAgICAgICAgIHJldHVybiBvYmoub21pdChcbiAgICAgICAgICAgICAgICAgIC8qIFNBRkVUWTogQVBJIOuNsOy9lOugiOydtO2EsOyZgCBab2Qg6rKA7Kad6riwIOuTseuhnSDqs4Tslb3snbQg7J20IOqwkuydmCDtg4DsnoXsnYQg67O07J6l7ZWc64ukLiAqLyBrZXlSZWNvcmQgYXMgYW55LFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKFtcIlBhcnRpYWxcIl0uaW5jbHVkZXMocmVmVHlwZS5pZCkpIHtcbiAgICAgICAgICAgIGlmIChyZWZUeXBlLmFyZ3M/Lmxlbmd0aCAhPT0gMSkge1xuICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYOyemOuqu+uQnCAke3JlZlR5cGUuaWR9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBvYmogPSBnZXRab2RUeXBlRnJvbUFwaVBhcmFtVHlwZShyZWZUeXBlLmFyZ3NbMF0sIHJlZmVyZW5jZXMpO1xuICAgICAgICAgICAgLy8gb3hsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgLS0gUGFydGlhbCDsnbjsiJgg7YOA7J6FIOy6kOyKpO2MhVxuICAgICAgICAgICAgcmV0dXJuIC8qIFNBRkVUWTogQVBJIOuNsOy9lOugiOydtO2EsOyZgCBab2Qg6rKA7Kad6riwIOuTseuhnSDqs4Tslb3snbQg7J20IOqwkuydmCDtg4DsnoXsnYQg67O07J6l7ZWc64ukLiAqLyAoXG4gICAgICAgICAgICAgIG9iaiBhcyB6LlpvZE9iamVjdDxhbnk+XG4gICAgICAgICAgICApLnBhcnRpYWwoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgcmVmZXJlbmNlID0gcmVmZXJlbmNlc1tyZWZUeXBlLmlkXTtcbiAgICAgICAgICBpZiAocmVmZXJlbmNlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB6LnVua25vd24oKTtcbiAgICAgICAgICAgIC8vIHRocm93IG5ldyBFcnJvcihgcmVmIOywuOyhsCDrtojqsIAgJHtyZWZUeXBlLmlkfWApO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmVmZXJlbmNlO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgXCJ1bmlvblwiOiB7XG4gICAgICAgICAgY29uc3QgdW5pb25UeXBlID1cbiAgICAgICAgICAgIC8qIFNBRkVUWTogQVBJIOuNsOy9lOugiOydtO2EsOyZgCBab2Qg6rKA7Kad6riwIOuTseuhnSDqs4Tslb3snbQg7J20IOqwkuydmCDtg4DsnoXsnYQg67O07J6l7ZWc64ukLiAqLyBwYXJhbVR5cGUgYXMge1xuICAgICAgICAgICAgICB0OiBzdHJpbmc7XG4gICAgICAgICAgICAgIHR5cGVzOiBBcGlQYXJhbVR5cGVbXTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgLy8gbnVsbGFibGUg7Jyg64uI7JioXG4gICAgICAgICAgaWYgKHVuaW9uVHlwZS50eXBlcy5sZW5ndGggPT09IDIgJiYgdW5pb25UeXBlLnR5cGVzLnNvbWUoKHR5cGUpID0+IHR5cGUgPT09IFwibnVsbFwiKSkge1xuICAgICAgICAgICAgaWYgKHVuaW9uVHlwZS50eXBlc1swXSA9PT0gXCJudWxsXCIpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGdldFpvZFR5cGVGcm9tQXBpUGFyYW1UeXBlKHVuaW9uVHlwZS50eXBlc1sxXSwgcmVmZXJlbmNlcykubnVsbGFibGUoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJldHVybiBnZXRab2RUeXBlRnJvbUFwaVBhcmFtVHlwZSh1bmlvblR5cGUudHlwZXNbMF0sIHJlZmVyZW5jZXMpLm51bGxhYmxlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIOydvOuwmCDsnKDri4jsmKhcbiAgICAgICAgICByZXR1cm4gei51bmlvbihcbiAgICAgICAgICAgIHVuaW9uVHlwZS50eXBlcy5tYXAoKHR5cGUpID0+IGdldFpvZFR5cGVGcm9tQXBpUGFyYW1UeXBlKHR5cGUsIHJlZmVyZW5jZXMpKSxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgXCJpbnRlcnNlY3Rpb25cIjoge1xuICAgICAgICAgIGNvbnN0IGludGVyc2VjdGlvblR5cGUgPVxuICAgICAgICAgICAgLyogU0FGRVRZOiBBUEkg642w7L2U66CI7J207YSw7JmAIFpvZCDqsoDspp3quLAg65Ox66GdIOqzhOyVveydtCDsnbQg6rCS7J2YIO2DgOyeheydhCDrs7TsnqXtlZzri6QuICovIHBhcmFtVHlwZSBhcyB7XG4gICAgICAgICAgICAgIHQ6IHN0cmluZztcbiAgICAgICAgICAgICAgdHlwZXM6IEFwaVBhcmFtVHlwZVtdO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICByZXR1cm4gaW50ZXJzZWN0aW9uVHlwZS50eXBlcy5yZWR1Y2UoKHJlc3VsdCwgdHlwZSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc29sdmVkVHlwZSA9IGdldFpvZFR5cGVGcm9tQXBpUGFyYW1UeXBlKHR5cGUsIHJlZmVyZW5jZXMpO1xuICAgICAgICAgICAgaWYgKGluZGV4ID09PSAwKSB7XG4gICAgICAgICAgICAgIHJldHVybiByZXNvbHZlZFR5cGU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXR1cm4gei5pbnRlcnNlY3Rpb24ocmVzdWx0LCByZXNvbHZlZFR5cGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sIC8qIFNBRkVUWTogQVBJIOuNsOy9lOugiOydtO2EsOyZgCBab2Qg6rKA7Kad6riwIOuTseuhnSDqs4Tslb3snbQg7J20IOqwkuydmCDtg4DsnoXsnYQg67O07J6l7ZWc64ukLiAqLyB6LnVua25vd24oKSBhcyB6LlpvZFR5cGUpO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgXCJ0dXBsZS10eXBlXCI6IHtcbiAgICAgICAgICBjb25zdCB0dXBsZVR5cGUgPVxuICAgICAgICAgICAgLyogU0FGRVRZOiBBUEkg642w7L2U66CI7J207YSw7JmAIFpvZCDqsoDspp3quLAg65Ox66GdIOqzhOyVveydtCDsnbQg6rCS7J2YIO2DgOyeheydhCDrs7TsnqXtlZzri6QuICovIHBhcmFtVHlwZSBhcyBBcGlQYXJhbVR5cGUuVHVwbGVUeXBlO1xuICAgICAgICAgIHJldHVybiB6LnR1cGxlKFxuICAgICAgICAgICAgLy8gb3hsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgLS0g7IOd7ISx65CY64qUIFpvZFR1cGxl7J2YIO2DgOyeheydhCDstpTsoIHtlZjquLAg7Ja066Ck7JuAXG4gICAgICAgICAgICAvKiBTQUZFVFk6IEFQSSDrjbDsvZTroIjsnbTthLDsmYAgWm9kIOqygOymneq4sCDrk7HroZ0g6rOE7JW97J20IOydtCDqsJLsnZgg7YOA7J6F7J2EIOuztOyepe2VnOuLpC4gKi8gdHVwbGVUeXBlLmVsZW1lbnRzLm1hcChcbiAgICAgICAgICAgICAgKGVsZW0pID0+IGdldFpvZFR5cGVGcm9tQXBpUGFyYW1UeXBlKGVsZW0sIHJlZmVyZW5jZXMpLFxuICAgICAgICAgICAgKSBhcyBhbnksXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHoudW5rbm93bigpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEFwaVBhcmFtIOuwsOyXtOydhCBab2RPYmplY3TroZwg67OA7ZmY7ZWp64uI64ukLlxuICog6rCBIO2MjOudvOuvuO2EsOydmCBvcHRpb25hbCDsl6zrtoDrpbwg67CY7JiB7ZWY7JesIFpvZCDsiqTtgqTrp4jrpbwg7IOd7ISx7ZWp64uI64ukLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Wm9kT2JqZWN0RnJvbUFwaVBhcmFtcyhcbiAgYXBpUGFyYW1zOiBBcGlQYXJhbVtdLFxuICByZWZlcmVuY2VzOiB7XG4gICAgW2lkOiBzdHJpbmddOiB6LlpvZFR5cGU7XG4gIH0gPSB7fSxcbik6IHouWm9kT2JqZWN0IHtcbiAgcmV0dXJuIHoub2JqZWN0KFxuICAgIE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgIGFwaVBhcmFtcy5tYXAoKHBhcmFtKSA9PiB7XG4gICAgICAgIGxldCB6b2RUeXBlID0gZ2V0Wm9kVHlwZUZyb21BcGlQYXJhbVR5cGUocGFyYW0udHlwZSwgcmVmZXJlbmNlcyk7XG4gICAgICAgIGlmIChwYXJhbS5vcHRpb25hbCkge1xuICAgICAgICAgIHpvZFR5cGUgPSB6b2RUeXBlLm9wdGlvbmFsKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFtwYXJhbS5uYW1lLCB6b2RUeXBlXTtcbiAgICAgIH0pLFxuICAgICksXG4gICk7XG59XG5cbi8qKlxuICogRXh0ZW5kZWRBcGnrpbwgWm9kT2JqZWN066GcIOuzgO2ZmO2VqeuLiOuLpC5cbiAqIFR5cGVQYXJhbWV0ZXLsmYAg7J2867CYIO2MjOudvOuvuO2EsOulvCDsspjrpqztlZjrqbAsXG4gKiBDb250ZXh0LCBSZWZLbmV4LCBf66GcIOyLnOyeke2VmOuKlCBvcHRpb25hbCDtjIzrnbzrr7jthLDripQg7KCc7Jm47ZWp64uI64ukLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Wm9kT2JqZWN0RnJvbUFwaShcbiAgYXBpOiBFeHRlbmRlZEFwaSxcbiAgcmVmZXJlbmNlczoge1xuICAgIFtpZDogc3RyaW5nXTogei5ab2RUeXBlO1xuICB9ID0ge30sXG4pIHtcbiAgaWYgKGFwaS50eXBlUGFyYW1ldGVycz8ubGVuZ3RoID4gMCkge1xuICAgIGZvciAoY29uc3QgdHlwZVBhcmFtIG9mIGFwaS50eXBlUGFyYW1ldGVycykge1xuICAgICAgaWYgKHR5cGVQYXJhbS5jb25zdHJhaW50KSB7XG4gICAgICAgIGNvbnN0IHpvZFR5cGUgPSBnZXRab2RUeXBlRnJvbUFwaVBhcmFtVHlwZSh0eXBlUGFyYW0uY29uc3RyYWludCwgcmVmZXJlbmNlcyk7XG5cbiAgICAgICAgLy8gRklYTUU6IHJlZmVyZW5jZXPripQg6riA66Gc67KMIOyYpOu4jOygne2KuOuhnCwgdHlwZVBhcmFtLmlkKFwiVFwiIOuTsSnrpbwga2V566GcIOydtOugh+qyjCDrja7slrTslIzsm4zrsoTrpqzrqbQgbG9hZGVkVHlwZXPqsIAg7Jik7Je865CoLlxuICAgICAgICAvLyBveGxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAtLSDroIjtjbzrn7DsiqQg7YOA7J6FIOy6kOyKpO2MhVxuICAgICAgICAvKiBTQUZFVFk6IEFQSSDrjbDsvZTroIjsnbTthLDsmYAgWm9kIOqygOymneq4sCDrk7HroZ0g6rOE7JW97J20IOydtCDqsJLsnZgg7YOA7J6F7J2EIOuztOyepe2VnOuLpC4gKi8gKHJlZmVyZW5jZXNbXG4gICAgICAgICAgdHlwZVBhcmFtLmlkXG4gICAgICAgIF0gYXMgei5ab2RUeXBlPGFueT4pID0gem9kVHlwZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgY29uc3QgUmVxVHlwZSA9IGdldFpvZE9iamVjdEZyb21BcGlQYXJhbXMoXG4gICAgLy8gYXBpIHBhcnNpbmftlZwg6rKw6rO86rCAIGFwaSBwYXJhbXNcbiAgICBhcGkucGFyYW1ldGVycy5maWx0ZXIoXG4gICAgICAocGFyYW0pID0+XG4gICAgICAgICFBcGlQYXJhbVR5cGUuaXNDb250ZXh0KHBhcmFtLnR5cGUpICYmXG4gICAgICAgICFBcGlQYXJhbVR5cGUuaXNSZWZLbmV4KHBhcmFtLnR5cGUpICYmXG4gICAgICAgICEocGFyYW0ub3B0aW9uYWwgJiYgcGFyYW0ubmFtZS5zdGFydHNXaXRoKFwiX1wiKSksIC8vIF/roZwg7Iuc7J6R7ZWY64qUIO2MjOudvOuvuO2EsOuKlCDsoJzsmbhcbiAgICApLFxuICAgIHJlZmVyZW5jZXMsXG4gICk7XG4gIHJldHVybiBSZXFUeXBlO1xufVxuXG4vKlxuICogQVBJIO2DgOyehSDsoJXsnZjrpbwgVHlwZVNjcmlwdCDsvZTrk5wg66y47J6Q7Je066GcIOuzgO2ZmO2VmOq4sCDsnITtlZwg7ZWo7IiY65Ok7J6F64uI64ukLlxuICovXG5cbi8qKlxuICogQXBpUGFyYW1UeXBl7J2EIFR5cGVTY3JpcHQg7YOA7J6FIOusuOyekOyXtOuhnCDrs4DtmZjtlanri4jri6QuXG4gKiB1bmlvbiwgaW50ZXJzZWN0aW9uLCBhcnJheSwgcmVmIOuTsSDrqqjrk6Ag7YOA7J6F7J2EIFRTIOusuOuyleycvOuhnCDtkZztmITtlZjrqbAsXG4gKiBpbXBvcnTqsIAg7ZWE7JqU7ZWcIO2DgOyehSBJROuKlCBpbmplY3RJbXBvcnRLZXlz7JeQIOyImOynke2VqeuLiOuLpC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFwaVBhcmFtVHlwZVRvVHNUeXBlPElucHV0PihpbnB1dDogSW5wdXQsIGluamVjdEltcG9ydEtleXM6IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgY29uc3QgcGFyYW1UeXBlID0gcGFyc2VBcGlQYXJhbVR5cGUoaW5wdXQpO1xuICBpZiAoXG4gICAgW1xuICAgICAgXCJzdHJpbmdcIixcbiAgICAgIFwibnVtYmVyXCIsXG4gICAgICBcImJvb2xlYW5cIixcbiAgICAgIFwidHJ1ZVwiLFxuICAgICAgXCJmYWxzZVwiLFxuICAgICAgXCJudWxsXCIsXG4gICAgICBcInVuZGVmaW5lZFwiLFxuICAgICAgXCJ2b2lkXCIsXG4gICAgICBcImFueVwiLFxuICAgICAgXCJ1bmtub3duXCIsXG4gICAgXS5pbmNsdWRlcyhcbiAgICAgIC8qIFNBRkVUWTogQVBJIOuNsOy9lOugiOydtO2EsOyZgCBab2Qg6rKA7Kad6riwIOuTseuhnSDqs4Tslb3snbQg7J20IOqwkuydmCDtg4DsnoXsnYQg67O07J6l7ZWc64ukLiAqLyBwYXJhbVR5cGUgYXMgc3RyaW5nLFxuICAgIClcbiAgKSB7XG4gICAgcmV0dXJuIC8qIFNBRkVUWTogQVBJIOuNsOy9lOugiOydtO2EsOyZgCBab2Qg6rKA7Kad6riwIOuTseuhnSDqs4Tslb3snbQg7J20IOqwkuydmCDtg4DsnoXsnYQg67O07J6l7ZWc64ukLiAqLyBwYXJhbVR5cGUgYXMgc3RyaW5nO1xuICB9IGVsc2UgaWYgKEFwaVBhcmFtVHlwZS5pc09iamVjdChwYXJhbVR5cGUpKSB7XG4gICAgcmV0dXJuIGB7ICR7YXBpUGFyYW1Ub1RzQ29kZShwYXJhbVR5cGUucHJvcHMsIGluamVjdEltcG9ydEtleXMpfSB9YDtcbiAgfSBlbHNlIGlmIChBcGlQYXJhbVR5cGUuaXNTdHJpbmdMaXRlcmFsKHBhcmFtVHlwZSkpIHtcbiAgICByZXR1cm4gYFwiJHtwYXJhbVR5cGUudmFsdWV9XCJgO1xuICB9IGVsc2UgaWYgKEFwaVBhcmFtVHlwZS5pc051bWVyaWNMaXRlcmFsKHBhcmFtVHlwZSkpIHtcbiAgICByZXR1cm4gU3RyaW5nKHBhcmFtVHlwZS52YWx1ZSk7XG4gIH0gZWxzZSBpZiAoQXBpUGFyYW1UeXBlLmlzVW5pb24ocGFyYW1UeXBlKSkge1xuICAgIHJldHVybiBwYXJhbVR5cGUudHlwZXMubWFwKCh0eXBlKSA9PiBhcGlQYXJhbVR5cGVUb1RzVHlwZSh0eXBlLCBpbmplY3RJbXBvcnRLZXlzKSkuam9pbihcIiB8IFwiKTtcbiAgfSBlbHNlIGlmIChBcGlQYXJhbVR5cGUuaXNJbnRlcnNlY3Rpb24ocGFyYW1UeXBlKSkge1xuICAgIHJldHVybiBwYXJhbVR5cGUudHlwZXMubWFwKCh0eXBlKSA9PiBhcGlQYXJhbVR5cGVUb1RzVHlwZSh0eXBlLCBpbmplY3RJbXBvcnRLZXlzKSkuam9pbihcIiAmIFwiKTtcbiAgfSBlbHNlIGlmIChBcGlQYXJhbVR5cGUuaXNBcnJheShwYXJhbVR5cGUpKSB7XG4gICAgLy8gaW50ZXJzZWN0aW9u7J2064KYIHVuaW9u7J24IOqyveyasCDqtITtmLjroZwg6rCQ7Iu46riwXG4gICAgY29uc3QgZWxlbWVudHNUeXBlID0gYXBpUGFyYW1UeXBlVG9Uc1R5cGUocGFyYW1UeXBlLmVsZW1lbnRzVHlwZSwgaW5qZWN0SW1wb3J0S2V5cyk7XG4gICAgcmV0dXJuIEFwaVBhcmFtVHlwZS5pc0ludGVyc2VjdGlvbihwYXJhbVR5cGUuZWxlbWVudHNUeXBlKSB8fFxuICAgICAgQXBpUGFyYW1UeXBlLmlzVW5pb24ocGFyYW1UeXBlLmVsZW1lbnRzVHlwZSlcbiAgICAgID8gYCgke2VsZW1lbnRzVHlwZX0pW11gXG4gICAgICA6IGAke2VsZW1lbnRzVHlwZX1bXWA7XG4gIH0gZWxzZSBpZiAoQXBpUGFyYW1UeXBlLmlzUmVmKHBhcmFtVHlwZSkpIHtcbiAgICBpZiAoIVtcIlBpY2tcIiwgXCJPbWl0XCIsIFwiUHJvbWlzZVwiLCBcIlBhcnRpYWxcIiwgXCJEYXRlXCJdLmluY2x1ZGVzKHBhcmFtVHlwZS5pZCkpIHtcbiAgICAgIC8vIGltcG9ydEtleXMg7J247KCd7IWYXG4gICAgICBpbmplY3RJbXBvcnRLZXlzLnB1c2gocGFyYW1UeXBlLmlkKTtcbiAgICB9XG4gICAgaWYgKHBhcmFtVHlwZS5hcmdzID09PSB1bmRlZmluZWQgfHwgcGFyYW1UeXBlLmFyZ3MubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gcGFyYW1UeXBlLmlkO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYCR7cGFyYW1UeXBlLmlkfTwke3BhcmFtVHlwZS5hcmdzXG4gICAgICAgIC5tYXAoKGFyZykgPT4gYXBpUGFyYW1UeXBlVG9Uc1R5cGUoYXJnLCBpbmplY3RJbXBvcnRLZXlzKSlcbiAgICAgICAgLmpvaW4oXCIsXCIpfT5gO1xuICAgIH1cbiAgfSBlbHNlIGlmIChBcGlQYXJhbVR5cGUuaXNJbmRleGVkQWNjZXNzKHBhcmFtVHlwZSkpIHtcbiAgICByZXR1cm4gYCR7YXBpUGFyYW1UeXBlVG9Uc1R5cGUoXG4gICAgICBwYXJhbVR5cGUub2JqZWN0LFxuICAgICAgaW5qZWN0SW1wb3J0S2V5cyxcbiAgICApfVske2FwaVBhcmFtVHlwZVRvVHNUeXBlKHBhcmFtVHlwZS5pbmRleCwgaW5qZWN0SW1wb3J0S2V5cyl9XWA7XG4gIH0gZWxzZSBpZiAoQXBpUGFyYW1UeXBlLmlzVHVwbGVUeXBlKHBhcmFtVHlwZSkpIHtcbiAgICByZXR1cm4gYFsgJHtwYXJhbVR5cGUuZWxlbWVudHMubWFwKChlbGVtKSA9PiBhcGlQYXJhbVR5cGVUb1RzVHlwZShlbGVtLCBpbmplY3RJbXBvcnRLZXlzKSl9IF1gO1xuICB9IGVsc2UgaWYgKEFwaVBhcmFtVHlwZS5pc1R5cGVQYXJhbShwYXJhbVR5cGUpKSB7XG4gICAgcmV0dXJuIGAke3BhcmFtVHlwZS5pZH0ke1xuICAgICAgcGFyYW1UeXBlLmNvbnN0cmFpbnRcbiAgICAgICAgPyBgIGV4dGVuZHMgJHthcGlQYXJhbVR5cGVUb1RzVHlwZShwYXJhbVR5cGUuY29uc3RyYWludCwgaW5qZWN0SW1wb3J0S2V5cyl9YFxuICAgICAgICA6IFwiXCJcbiAgICB9YDtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHJlc29sdmUg67aI6rCAIEFwaVBhcmFtVHlwZSAke3BhcmFtVHlwZX1gKTtcbiAgfVxufVxuXG4vKipcbiAqIEFwaVBhcmFtIOuwsOyXtOydhCBUeXBlU2NyaXB0IO2VqOyImCDtjIzrnbzrr7jthLAg7L2U65Oc66GcIOuzgO2ZmO2VqeuLiOuLpC5cbiAqIOyYiDogXCJuYW1lOiBzdHJpbmcsIGFnZT86IG51bWJlciwgYWN0aXZlOiBib29sZWFuID0gdHJ1ZVwiXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcGlQYXJhbVRvVHNDb2RlKHBhcmFtczogQXBpUGFyYW1bXSwgaW5qZWN0SW1wb3J0S2V5czogc3RyaW5nW10pOiBzdHJpbmcge1xuICByZXR1cm4gcGFyYW1zXG4gICAgLm1hcCgocGFyYW0pID0+IHtcbiAgICAgIHJldHVybiBgJHtwYXJhbS5uYW1lfSR7XG4gICAgICAgIHBhcmFtLm9wdGlvbmFsICYmICFwYXJhbS5kZWZhdWx0RGVmID8gXCI/XCIgOiBcIlwiXG4gICAgICB9OiAke2FwaVBhcmFtVHlwZVRvVHNUeXBlKHBhcmFtLnR5cGUsIGluamVjdEltcG9ydEtleXMpfSR7XG4gICAgICAgIHBhcmFtLmRlZmF1bHREZWYgPyBgPSAke3BhcmFtLmRlZmF1bHREZWZ9YCA6IFwiXCJcbiAgICAgIH1gO1xuICAgIH0pXG4gICAgLmpvaW4oXCIsIFwiKTtcbn1cblxuLyoqXG4gKiBBcGlQYXJhbSDrsLDsl7TsnYQgVHlwZVNjcmlwdCDqsJ3ssrQg7YOA7J6FIOy9lOuTnOuhnCDrs4DtmZjtlanri4jri6QuXG4gKiDsmIg6IFwieyBuYW1lOiBzdHJpbmcsIGFnZT86IG51bWJlciwgYWN0aXZlOiBib29sZWFuID0gdHJ1ZSB9XCJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFwaVBhcmFtVG9Uc0NvZGVBc09iamVjdChwYXJhbXM6IEFwaVBhcmFtW10sIGluamVjdEltcG9ydEtleXM6IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgcmV0dXJuIGB7ICR7cGFyYW1zXG4gICAgLm1hcChcbiAgICAgIChwYXJhbSkgPT5cbiAgICAgICAgYCR7cGFyYW0ubmFtZX0ke3BhcmFtLm9wdGlvbmFsID8gXCI/XCIgOiBcIlwifTogJHthcGlQYXJhbVR5cGVUb1RzVHlwZShcbiAgICAgICAgICBwYXJhbS50eXBlLFxuICAgICAgICAgIGluamVjdEltcG9ydEtleXMsXG4gICAgICAgICl9JHtwYXJhbS5kZWZhdWx0RGVmID8gYD0gJHtwYXJhbS5kZWZhdWx0RGVmfWAgOiBcIlwifWAsXG4gICAgKVxuICAgIC5qb2luKFwiLCBcIil9IH1gO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE0RkEsU0FBZ0Isa0JBQXlCLE9BQTRCO0NBQ25FLE1BQU0sU0FBUyxtQkFBbUIsVUFBVSxLQUFLO0NBQ2pELElBQUksQ0FBQyxPQUFPLFNBQ1YsTUFBTSxJQUFJLE1BQU0sNEJBQTRCLEVBQUUsY0FBYyxPQUFPLEtBQUssR0FBRztDQUU3RSxPQUFPLE9BQU87QUFDaEI7Ozs7O0FBTUEsU0FBZ0Isa0JBQWtCLFdBQXlCO0NBQ3pELElBQUksYUFBYSxVQUFVLFNBQVMsR0FDbEMsT0FBTyxVQUFVLE9BQU87TUFFeEIsT0FBTztBQUVYOzs7Ozs7QUFXQSxTQUFnQiwyQkFDZCxPQUNBLFlBR1c7Q0FDWCxNQUFNLFlBQVksa0JBQWtCLEtBQUs7Q0FDekMsUUFBUSxXQUFSO0VBQ0UsS0FBSyxVQUNILE9BQU8sRUFBRSxPQUFPO0VBQ2xCLEtBQUssVUFDSCxPQUFPLEVBQUUsT0FBTztFQUNsQixLQUFLLFdBQ0gsT0FBTyxFQUFFLFFBQVE7RUFDbkIsU0FBUztHQUNQLE1BQU0sVUFDbUQ7R0FJekQsUUFBUSxRQUFRLEdBQWhCO0lBQ0UsS0FBSztJQUNMLEtBQUssbUJBQ0gsT0FBTyxFQUFFLFFBQVEsUUFBUSxLQUFLO0lBQ2hDLEtBQUssVUFNSCxPQUFPLDBCQUEwQixVQUFRLEtBQUs7SUFFaEQsS0FBSyxTQUFTO0tBQ1osTUFBTSxVQUNtRDtLQUl6RCxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsUUFBUSxjQUFjLFVBQVUsQ0FBQztJQUM3RTtJQUNBLEtBQUssT0FBTztLQUNWLE1BQU0sVUFDbUQ7S0FNekQsSUFBSSxRQUFRLE9BQU8sUUFDakIsT0FBTyxFQUFFLEtBQUs7S0FHaEIsSUFBSSxDQUFDLFFBQVEsTUFBTSxDQUFDLENBQUMsU0FBUyxRQUFRLEVBQUUsR0FBRztNQUN6QyxJQUFJLFFBQVEsTUFBTSxXQUFXLEdBQzNCLE1BQU0sSUFBSSxNQUFNLE9BQU8sUUFBUSxJQUFJO01BRXJDLE1BQU0sQ0FBQyxLQUFLLGtCQUM2QyxRQUFRLEtBQUssS0FDakUsUUFBUSwyQkFBMkIsS0FBSyxVQUFVLENBQ3JEO01BRUYsSUFBSSxPQUFpQixDQUFDO01BQ3RCLElBQUksMEJBQTBCLEVBQUUsVUFDOUIsT0FBTyxlQUFlLElBQUksUUFBUSxLQUMvQixXQUEwQyxPQUFPLElBQUksT0FBTyxFQUMvRDtXQUVBLE9BRUksZUFDQSxJQUFJO01BRVYsTUFBTSxZQUFZLE9BQU8sWUFBWSxLQUFLLEtBQUssUUFBUSxDQUFDLEtBQUssSUFBYSxDQUFDLENBQUM7TUFDNUUsSUFBSSxRQUFRLE9BQU8sUUFDakI7V0FBSSxJQUFJLE1BRU4sT0FBTyxJQUFJLEtBQzhDLFNBQ3pEO01BQ0YsT0FFQSxJQUFJLElBQUksTUFFTixPQUFPLElBQUksS0FDOEMsU0FDekQ7S0FHTjtLQUNBLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLFFBQVEsRUFBRSxHQUFHO01BQ3BDLElBQUksUUFBUSxNQUFNLFdBQVcsR0FDM0IsTUFBTSxJQUFJLE1BQU0sT0FBTyxRQUFRLElBQUk7TUFJckMsT0FGWSwyQkFBMkIsUUFBUSxLQUFLLElBQUksVUFHdEQsQ0FBQSxDQUNBLFFBQVE7S0FDWjtLQUNBLE1BQU0sWUFBWSxXQUFXLFFBQVE7S0FDckMsSUFBSSxjQUFjLFFBQ2hCLE9BQU8sRUFBRSxRQUFRO0tBR25CLE9BQU87SUFDVDtJQUNBLEtBQUssU0FBUztLQUNaLE1BQU0sWUFDbUQ7S0FLekQsSUFBSSxVQUFVLE1BQU0sV0FBVyxLQUFLLFVBQVUsTUFBTSxNQUFNLFNBQVMsU0FBUyxNQUFNLEdBQ2hGLElBQUksVUFBVSxNQUFNLE9BQU8sUUFDekIsT0FBTywyQkFBMkIsVUFBVSxNQUFNLElBQUksVUFBVSxDQUFDLENBQUMsU0FBUztVQUUzRSxPQUFPLDJCQUEyQixVQUFVLE1BQU0sSUFBSSxVQUFVLENBQUMsQ0FBQyxTQUFTO0tBSS9FLE9BQU8sRUFBRSxNQUNQLFVBQVUsTUFBTSxLQUFLLFNBQVMsMkJBQTJCLE1BQU0sVUFBVSxDQUFDLENBQzVFO0lBQ0Y7SUFDQSxLQUFLLGdCQU1ILE9BQU8sVUFBaUIsTUFBTSxRQUFRLFFBQVEsTUFBTSxVQUFVO0tBQzVELE1BQU0sZUFBZSwyQkFBMkIsTUFBTSxVQUFVO0tBQ2hFLElBQUksVUFBVSxHQUNaLE9BQU87VUFFUCxPQUFPLEVBQUUsYUFBYSxRQUFRLFlBQVk7SUFFOUMsR0FBMEQsRUFBRSxRQUFRLENBQWM7SUFFcEYsS0FBSyxjQUFjO0tBQ2pCLE1BQU0sWUFDbUQ7S0FDekQsT0FBTyxFQUFFLE1BRWdELFVBQVUsU0FBUyxLQUN2RSxTQUFTLDJCQUEyQixNQUFNLFVBQVUsQ0FDdkQsQ0FDRjtJQUNGO0dBQ0Y7R0FDQSxPQUFPLEVBQUUsUUFBUTtFQUNuQjtDQUNGO0FBQ0Y7Ozs7O0FBTUEsU0FBZ0IsMEJBQ2QsV0FDQSxhQUVJLENBQUMsR0FDUTtDQUNiLE9BQU8sRUFBRSxPQUNQLE9BQU8sWUFDTCxVQUFVLEtBQUssVUFBVTtFQUN2QixJQUFJLFVBQVUsMkJBQTJCLE1BQU0sTUFBTSxVQUFVO0VBQy9ELElBQUksTUFBTSxVQUNSLFVBQVUsUUFBUSxTQUFTO0VBRTdCLE9BQU8sQ0FBQyxNQUFNLE1BQU0sT0FBTztDQUM3QixDQUFDLENBQ0gsQ0FDRjtBQUNGOzs7Ozs7QUFPQSxTQUFnQixvQkFDZCxLQUNBLGFBRUksQ0FBQyxHQUNMO0NBQ0EsSUFBSSxJQUFJLGdCQUFnQixTQUFTLEdBQy9CO09BQUssTUFBTSxhQUFhLElBQUksZ0JBQzFCLElBQUksVUFBVSxZQUFZO0dBQ3hCLE1BQU0sVUFBVSwyQkFBMkIsVUFBVSxZQUFZLFVBQVU7R0FJcEIsV0FDckQsVUFBVSxNQUNXO0VBQ3pCO0NBQ0Y7Q0FZRixPQVZnQiwwQkFFZCxJQUFJLFdBQVcsUUFDWixVQUNDLENBQUMsYUFBYSxVQUFVLE1BQU0sSUFBSSxLQUNsQyxDQUFDLGFBQWEsVUFBVSxNQUFNLElBQUksS0FDbEMsRUFBRSxNQUFNLFlBQVksTUFBTSxLQUFLLFdBQVcsR0FBRyxFQUNqRCxHQUNBLFVBRUs7QUFDVDs7Ozs7O0FBV0EsU0FBZ0IscUJBQTRCLE9BQWMsa0JBQW9DO0NBQzVGLE1BQU0sWUFBWSxrQkFBa0IsS0FBSztDQUN6QyxJQUNFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7Q0FDRixDQUFDLENBQUMsU0FDdUQsU0FDekQsR0FFQSxPQUE4RDtNQUN6RCxJQUFJLGFBQWEsU0FBUyxTQUFTLEdBQ3hDLE9BQU8sS0FBSyxpQkFBaUIsVUFBVSxPQUFPLGdCQUFnQixFQUFFO01BQzNELElBQUksYUFBYSxnQkFBZ0IsU0FBUyxHQUMvQyxPQUFPLElBQUksVUFBVSxNQUFNO01BQ3RCLElBQUksYUFBYSxpQkFBaUIsU0FBUyxHQUNoRCxPQUFPLE9BQU8sVUFBVSxLQUFLO01BQ3hCLElBQUksYUFBYSxRQUFRLFNBQVMsR0FDdkMsT0FBTyxVQUFVLE1BQU0sS0FBSyxTQUFTLHFCQUFxQixNQUFNLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUs7TUFDeEYsSUFBSSxhQUFhLGVBQWUsU0FBUyxHQUM5QyxPQUFPLFVBQVUsTUFBTSxLQUFLLFNBQVMscUJBQXFCLE1BQU0sZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSztNQUN4RixJQUFJLGFBQWEsUUFBUSxTQUFTLEdBQUc7RUFFMUMsTUFBTSxlQUFlLHFCQUFxQixVQUFVLGNBQWMsZ0JBQWdCO0VBQ2xGLE9BQU8sYUFBYSxlQUFlLFVBQVUsWUFBWSxLQUN2RCxhQUFhLFFBQVEsVUFBVSxZQUFZLElBQ3pDLElBQUksYUFBYSxPQUNqQixHQUFHLGFBQWE7Q0FDdEIsT0FBTyxJQUFJLGFBQWEsTUFBTSxTQUFTLEdBQUc7RUFDeEMsSUFBSSxDQUFDO0dBQUM7R0FBUTtHQUFRO0dBQVc7R0FBVztFQUFNLENBQUMsQ0FBQyxTQUFTLFVBQVUsRUFBRSxHQUV2RSxpQkFBaUIsS0FBSyxVQUFVLEVBQUU7RUFFcEMsSUFBSSxVQUFVLFNBQVMsVUFBYSxVQUFVLEtBQUssV0FBVyxHQUM1RCxPQUFPLFVBQVU7T0FFakIsT0FBTyxHQUFHLFVBQVUsR0FBRyxHQUFHLFVBQVUsS0FDakMsS0FBSyxRQUFRLHFCQUFxQixLQUFLLGdCQUFnQixDQUFDLENBQUMsQ0FDekQsS0FBSyxHQUFHLEVBQUU7Q0FFakIsT0FBTyxJQUFJLGFBQWEsZ0JBQWdCLFNBQVMsR0FDL0MsT0FBTyxHQUFHLHFCQUNSLFVBQVUsUUFDVixnQkFDRixFQUFFLEdBQUcscUJBQXFCLFVBQVUsT0FBTyxnQkFBZ0IsRUFBRTtNQUN4RCxJQUFJLGFBQWEsWUFBWSxTQUFTLEdBQzNDLE9BQU8sS0FBSyxVQUFVLFNBQVMsS0FBSyxTQUFTLHFCQUFxQixNQUFNLGdCQUFnQixDQUFDLEVBQUU7TUFDdEYsSUFBSSxhQUFhLFlBQVksU0FBUyxHQUMzQyxPQUFPLEdBQUcsVUFBVSxLQUNsQixVQUFVLGFBQ04sWUFBWSxxQkFBcUIsVUFBVSxZQUFZLGdCQUFnQixNQUN2RTtNQUdOLE1BQU0sSUFBSSxNQUFNLDJCQUEyQixXQUFXO0FBRTFEOzs7OztBQU1BLFNBQWdCLGlCQUFpQixRQUFvQixrQkFBb0M7Q0FDdkYsT0FBTyxPQUNKLEtBQUssVUFBVTtFQUNkLE9BQU8sR0FBRyxNQUFNLE9BQ2QsTUFBTSxZQUFZLENBQUMsTUFBTSxhQUFhLE1BQU0sR0FDN0MsSUFBSSxxQkFBcUIsTUFBTSxNQUFNLGdCQUFnQixJQUNwRCxNQUFNLGFBQWEsS0FBSyxNQUFNLGVBQWU7Q0FFakQsQ0FBQyxDQUFDLENBQ0QsS0FBSyxJQUFJO0FBQ2Q7Ozs7O0FBTUEsU0FBZ0IseUJBQXlCLFFBQW9CLGtCQUFvQztDQUMvRixPQUFPLEtBQUssT0FDVCxLQUNFLFVBQ0MsR0FBRyxNQUFNLE9BQU8sTUFBTSxXQUFXLE1BQU0sR0FBRyxJQUFJLHFCQUM1QyxNQUFNLE1BQ04sZ0JBQ0YsSUFBSSxNQUFNLGFBQWEsS0FBSyxNQUFNLGVBQWUsSUFDckQsQ0FBQyxDQUNBLEtBQUssSUFBSSxFQUFFO0FBQ2hCOzs7WUFwYTZDO0NBUXZDLHFCQUE4QyxFQUFFLFdBQ3BELEVBQUUsTUFBTTtFQUNOLEVBQUUsS0FBSztHQUNMO0dBQ0E7R0FDQTtHQUNBO0dBQ0E7R0FDQTtHQUNBO0dBQ0E7R0FDQTtHQUNBO0VBQ0YsQ0FBQztFQUNELEVBQUUsT0FBTztHQUFFLEdBQUcsRUFBRSxRQUFRLGdCQUFnQjtHQUFHLE9BQU8sRUFBRSxPQUFPO0VBQUUsQ0FBQztFQUM5RCxFQUFFLE9BQU87R0FBRSxHQUFHLEVBQUUsUUFBUSxpQkFBaUI7R0FBRyxPQUFPLEVBQUUsT0FBTztFQUFFLENBQUM7RUFDL0QsRUFBRSxPQUFPO0dBQ1AsR0FBRyxFQUFFLFFBQVEsUUFBUTtHQUNyQixPQUFPLEVBQUUsTUFDUCxFQUFFLE9BQU87SUFDUCxNQUFNLEVBQUUsT0FBTztJQUNmLE1BQU07SUFDTixVQUFVLEVBQUUsUUFBUTtJQUNwQixZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUMsU0FBUztHQUNsQyxDQUFDLENBQ0g7RUFDRixDQUFDO0VBQ0QsRUFBRSxPQUFPO0dBQUUsR0FBRyxFQUFFLFFBQVEsT0FBTztHQUFHLE9BQU8sRUFBRSxNQUFNLGtCQUFrQjtFQUFFLENBQUM7RUFDdEUsRUFBRSxPQUFPO0dBQUUsR0FBRyxFQUFFLFFBQVEsY0FBYztHQUFHLE9BQU8sRUFBRSxNQUFNLGtCQUFrQjtFQUFFLENBQUM7RUFDN0UsRUFBRSxPQUFPO0dBQUUsR0FBRyxFQUFFLFFBQVEsT0FBTztHQUFHLGNBQWM7RUFBbUIsQ0FBQztFQUNwRSxFQUFFLE9BQU87R0FDUCxHQUFHLEVBQUUsUUFBUSxLQUFLO0dBQ2xCLElBQUksRUFBRSxPQUFPO0dBQ2IsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUMsQ0FBQyxTQUFTO0VBQzdDLENBQUM7RUFDRCxFQUFFLE9BQU87R0FDUCxHQUFHLEVBQUUsUUFBUSxnQkFBZ0I7R0FDN0IsUUFBUTtHQUNSLE9BQU87RUFDVCxDQUFDO0VBQ0QsRUFBRSxPQUFPO0dBQ1AsR0FBRyxFQUFFLFFBQVEsWUFBWTtHQUN6QixJQUFJLEVBQUUsT0FBTztHQUNiLFlBQVksbUJBQW1CLFNBQVM7RUFDMUMsQ0FBQztFQUNELEVBQUUsT0FBTztHQUFFLEdBQUcsRUFBRSxRQUFRLFlBQVk7R0FBRyxVQUFVLEVBQUUsTUFBTSxrQkFBa0I7RUFBRSxDQUFDO0VBQzlFLEVBQUUsT0FBTztHQUNQLEdBQUcsRUFBRSxRQUFRLFVBQVU7R0FDdkIsWUFBWSxFQUFFLE1BQ1osRUFBRSxPQUFPO0lBQ1AsTUFBTSxFQUFFLE9BQU87SUFDZixNQUFNO0lBQ04sVUFBVSxFQUFFLFFBQVE7SUFDcEIsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDLFNBQVM7R0FDbEMsQ0FBQyxDQUNIO0dBQ0EsWUFBWTtFQUNkLENBQUM7Q0FDSCxDQUFDLENBQ0gifQ==
265
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1jb252ZXJ0ZXJzLmpzIiwibmFtZXMiOlsib2JqVHlwZSIsImludGVyc2VjdGlvblR5cGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBpL2NvZGUtY29udmVydGVycy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGNvZGUtY29udmVydGVyc+uKlCBBUEkg7YOA7J6FIOygleydmOuTpOydhCBab2Qg6rCd7LK064KYIFR5cGVTY3JpcHQg7L2U65Oc66GcIOuzgO2ZmO2VmOuKlCDtlajsiJjrk6TsnYQg7KCc6rO17ZWp64uI64ukLlxuICpcbiAqIDEuIEFQSSDsi5zrpqzspojrk6Q6XG4gKiAtIEV4dGVuZGVkQXBpLCBBcGlQYXJhbSwgQXBpUGFyYW1UeXBlXG4gKiAtIEFQSSDrqZTtg4DrjbDsnbTthLDrpbwg7ZGc7ZiE7ZWY64qUIO2DgOyehSDsoJXsnZjrk6RcbiAqXG4gKiAyLiBab2RPYmplY3Qg67OA7ZmYXG4gKiAtIEFQSSDtg4DsnoUg7KCV7J2YIOKGkiBab2Qg7YOA7J6FIOyduOyKpO2EtOyKpCAo65+w7YOA7J6EIOuwuOumrOuNsOydtOyFmOyaqSlcbiAqIC0gZ2V0Wm9kVHlwZUZyb21BcGlQYXJhbVR5cGUg4oaSIGdldFpvZE9iamVjdEZyb21BcGlQYXJhbXMg4oaSIGdldFpvZE9iamVjdEZyb21BcGlcbiAqXG4gKiAzLiBUc1R5cGVEZWYg67OA7ZmYXG4gKiAtIEFQSSDtg4DsnoUg7KCV7J2YIOKGkiBUeXBlU2NyaXB0IO2DgOyehSDsvZTrk5wg66y47J6Q7Je0ICjsvZTrk5wg7IOd7ISx7JqpKVxuICogLSBhcGlQYXJhbVR5cGVUb1RzVHlwZSDihpIgYXBpUGFyYW1Ub1RzQ29kZSwgYXBpUGFyYW1Ub1RzQ29kZUFzT2JqZWN0XG4gKlxuICog7LC46rOgOlxuICogLSBab2RUeXBlRGVmIOyDneyEsSAoWm9kIOy9lOuTnCDrrLjsnpDsl7QpOiB6b2QtY29udmVydGVyLnRz7J2YIHpvZFR5cGVUb1pvZENvZGUg7IKs7JqpXG4gKiAtIEVudGl0eVByb3Ag67OA7ZmYOiB6b2QtY29udmVydGVyLnRzIOywuOyhsFxuICovXG5cbmltcG9ydCB7IHogfSBmcm9tIFwiem9kXCI7XG5cbmltcG9ydCB7IEFwaVBhcmFtVHlwZSB9IGZyb20gXCIuLi90eXBlcy90eXBlc1wiO1xuaW1wb3J0IHsgdHlwZSBBcGlQYXJhbSB9IGZyb20gXCIuLi90eXBlcy90eXBlc1wiO1xuaW1wb3J0IHsgdHlwZSBFeHRlbmRlZEFwaSB9IGZyb20gXCIuL2RlY29yYXRvcnNcIjtcblxuLy8gPGFueT7rpbwg7J6Q7KCc7ZWY6rOgLCBab2Tsl5DshJwg7KCc7JW97ZWY64qUIOq4sOuzuOyggeyduCBHZW5lcmljIFR5cGUgUGFyYW1ldGVy66W8IOyCrOyaqe2VqC5cbnR5cGUgQW55Wm9kT2JqZWN0ID0gei5ab2RPYmplY3Q7XG50eXBlIEFueVpvZExpdGVyYWwgPSB6LlpvZExpdGVyYWw7XG5cbmNvbnN0IEFwaVBhcmFtVHlwZVNjaGVtYTogei5ab2RUeXBlPEFwaVBhcmFtVHlwZT4gPSB6LmxhenkoKCkgPT5cbiAgei51bmlvbihbXG4gICAgei5lbnVtKFtcbiAgICAgIFwic3RyaW5nXCIsXG4gICAgICBcIm51bWJlclwiLFxuICAgICAgXCJib29sZWFuXCIsXG4gICAgICBcIm51bGxcIixcbiAgICAgIFwidW5kZWZpbmVkXCIsXG4gICAgICBcInZvaWRcIixcbiAgICAgIFwiYW55XCIsXG4gICAgICBcInVua25vd25cIixcbiAgICAgIFwidHJ1ZVwiLFxuICAgICAgXCJmYWxzZVwiLFxuICAgIF0pLFxuICAgIHoub2JqZWN0KHsgdDogei5saXRlcmFsKFwic3RyaW5nLWxpdGVyYWxcIiksIHZhbHVlOiB6LnN0cmluZygpIH0pLFxuICAgIHoub2JqZWN0KHsgdDogei5saXRlcmFsKFwibnVtZXJpYy1saXRlcmFsXCIpLCB2YWx1ZTogei5udW1iZXIoKSB9KSxcbiAgICB6Lm9iamVjdCh7XG4gICAgICB0OiB6LmxpdGVyYWwoXCJvYmplY3RcIiksXG4gICAgICBwcm9wczogei5hcnJheShcbiAgICAgICAgei5vYmplY3Qoe1xuICAgICAgICAgIG5hbWU6IHouc3RyaW5nKCksXG4gICAgICAgICAgdHlwZTogQXBpUGFyYW1UeXBlU2NoZW1hLFxuICAgICAgICAgIG9wdGlvbmFsOiB6LmJvb2xlYW4oKSxcbiAgICAgICAgICBkZWZhdWx0RGVmOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgICAgIH0pLFxuICAgICAgKSxcbiAgICB9KSxcbiAgICB6Lm9iamVjdCh7IHQ6IHoubGl0ZXJhbChcInVuaW9uXCIpLCB0eXBlczogei5hcnJheShBcGlQYXJhbVR5cGVTY2hlbWEpIH0pLFxuICAgIHoub2JqZWN0KHsgdDogei5saXRlcmFsKFwiaW50ZXJzZWN0aW9uXCIpLCB0eXBlczogei5hcnJheShBcGlQYXJhbVR5cGVTY2hlbWEpIH0pLFxuICAgIHoub2JqZWN0KHsgdDogei5saXRlcmFsKFwiYXJyYXlcIiksIGVsZW1lbnRzVHlwZTogQXBpUGFyYW1UeXBlU2NoZW1hIH0pLFxuICAgIHoub2JqZWN0KHtcbiAgICAgIHQ6IHoubGl0ZXJhbChcInJlZlwiKSxcbiAgICAgIGlkOiB6LnN0cmluZygpLFxuICAgICAgYXJnczogei5hcnJheShBcGlQYXJhbVR5cGVTY2hlbWEpLm9wdGlvbmFsKCksXG4gICAgfSksXG4gICAgei5vYmplY3Qoe1xuICAgICAgdDogei5saXRlcmFsKFwiaW5kZXhlZC1hY2Nlc3NcIiksXG4gICAgICBvYmplY3Q6IEFwaVBhcmFtVHlwZVNjaGVtYSxcbiAgICAgIGluZGV4OiBBcGlQYXJhbVR5cGVTY2hlbWEsXG4gICAgfSksXG4gICAgei5vYmplY3Qoe1xuICAgICAgdDogei5saXRlcmFsKFwidHlwZS1wYXJhbVwiKSxcbiAgICAgIGlkOiB6LnN0cmluZygpLFxuICAgICAgY29uc3RyYWludDogQXBpUGFyYW1UeXBlU2NoZW1hLm9wdGlvbmFsKCksXG4gICAgfSksXG4gICAgei5vYmplY3QoeyB0OiB6LmxpdGVyYWwoXCJ0dXBsZS10eXBlXCIpLCBlbGVtZW50czogei5hcnJheShBcGlQYXJhbVR5cGVTY2hlbWEpIH0pLFxuICAgIHoub2JqZWN0KHtcbiAgICAgIHQ6IHoubGl0ZXJhbChcImZ1bmN0aW9uXCIpLFxuICAgICAgcGFyYW1ldGVyczogei5hcnJheShcbiAgICAgICAgei5vYmplY3Qoe1xuICAgICAgICAgIG5hbWU6IHouc3RyaW5nKCksXG4gICAgICAgICAgdHlwZTogQXBpUGFyYW1UeXBlU2NoZW1hLFxuICAgICAgICAgIG9wdGlvbmFsOiB6LmJvb2xlYW4oKSxcbiAgICAgICAgICBkZWZhdWx0RGVmOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgICAgIH0pLFxuICAgICAgKSxcbiAgICAgIHJldHVyblR5cGU6IEFwaVBhcmFtVHlwZVNjaGVtYSxcbiAgICB9KSxcbiAgXSksXG4pO1xuXG4vKiog7Iug66Kw7ZWgIOyImCDsl4bripQg6rCS7J2EIEFwaVBhcmFtVHlwZSDqsr3qs4Tsl5DshJwg6rKA7Kad7ZWp64uI64ukLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQXBpUGFyYW1UeXBlPElucHV0PihpbnB1dDogSW5wdXQpOiBBcGlQYXJhbVR5cGUge1xuICBjb25zdCByZXN1bHQgPSBBcGlQYXJhbVR5cGVTY2hlbWEuc2FmZVBhcnNlKGlucHV0KTtcbiAgaWYgKCFyZXN1bHQuc3VjY2Vzcykge1xuICAgIHRocm93IG5ldyBFcnJvcihgcmVzb2x2ZSDrtojqsIAgQXBpUGFyYW1UeXBlOiAke3oucHJldHRpZnlFcnJvcihyZXN1bHQuZXJyb3IpfWApO1xuICB9XG4gIHJldHVybiByZXN1bHQuZGF0YTtcbn1cblxuLyoqXG4gKiBQcm9taXNlIO2DgOyeheydhCDtlZwg67KIIOyWuOuemO2Vke2VmOyXrCDrgrTrtoAg7YOA7J6F7J2EIOuwmO2ZmO2VqeuLiOuLpC5cbiAqIFByb21pc2XqsIAg7JWE64uMIOqyveyasCDsm5Drs7gg7YOA7J6F7J2EIOq3uOuMgOuhnCDrsJjtmZjtlanri4jri6QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1bndyYXBQcm9taXNlT25jZShwYXJhbVR5cGU6IEFwaVBhcmFtVHlwZSkge1xuICBpZiAoQXBpUGFyYW1UeXBlLmlzUHJvbWlzZShwYXJhbVR5cGUpKSB7XG4gICAgcmV0dXJuIHBhcmFtVHlwZS5hcmdzPy5bMF07XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHBhcmFtVHlwZTtcbiAgfVxufVxuXG4vKlxuICogQVBJ66W8IOq1rOyEse2VmOuKlCDsmpTshozrk6TsnYQgWm9kT2JqZWN066GcIOuzgO2ZmO2VmOq4sCDsnITtlZwg7ZWo7IiY65Ok7J6F64uI64ukLlxuICovXG5cbi8qKlxuICogQXBpUGFyYW1UeXBl7J2EIFpvZCDtg4DsnoUg7J247Iqk7YS07Iqk66GcIOuzgO2ZmO2VqeuLiOuLpC5cbiAqIHN0cmluZywgbnVtYmVyLCBhcnJheSwgdW5pb24g65OxIOuqqOuToCBBcGlQYXJhbVR5cGXsnYQg7LKY66as7ZWY66mwLFxuICog7Iic7ZmY7LC47KGw6rCAIOuwnOyDne2VmOuKlCDqsr3smrAgei51bmtub3duKCnsnLzroZwgZmFsbGJhY2vtlanri4jri6QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRab2RUeXBlRnJvbUFwaVBhcmFtVHlwZTxJbnB1dD4oXG4gIGlucHV0OiBJbnB1dCxcbiAgcmVmZXJlbmNlczoge1xuICAgIFtpZDogc3RyaW5nXTogei5ab2RUeXBlO1xuICB9LFxuKTogei5ab2RUeXBlIHtcbiAgY29uc3QgcGFyYW1UeXBlID0gcGFyc2VBcGlQYXJhbVR5cGUoaW5wdXQpO1xuICBzd2l0Y2ggKHBhcmFtVHlwZSkge1xuICAgIGNhc2UgXCJzdHJpbmdcIjpcbiAgICAgIHJldHVybiB6LnN0cmluZygpO1xuICAgIGNhc2UgXCJudW1iZXJcIjpcbiAgICAgIHJldHVybiB6Lm51bWJlcigpO1xuICAgIGNhc2UgXCJib29sZWFuXCI6XG4gICAgICByZXR1cm4gei5ib29sZWFuKCk7XG4gICAgZGVmYXVsdDoge1xuICAgICAgY29uc3QgYWR2VHlwZSA9XG4gICAgICAgIC8qIFNBRkVUWTogQVBJIOuNsOy9lOugiOydtO2EsOyZgCBab2Qg6rKA7Kad6riwIOuTseuhnSDqs4Tslb3snbQg7J20IOqwkuydmCDtg4DsnoXsnYQg67O07J6l7ZWc64ukLiAqLyBwYXJhbVR5cGUgYXMge1xuICAgICAgICAgIHQ6IHN0cmluZztcbiAgICAgICAgICB2YWx1ZT86IHN0cmluZyB8IG51bWJlcjtcbiAgICAgICAgfTtcbiAgICAgIHN3aXRjaCAoYWR2VHlwZS50KSB7XG4gICAgICAgIGNhc2UgXCJzdHJpbmctbGl0ZXJhbFwiOlxuICAgICAgICBjYXNlIFwibnVtZXJpYy1saXRlcmFsXCI6XG4gICAgICAgICAgcmV0dXJuIHoubGl0ZXJhbChhZHZUeXBlLnZhbHVlKTtcbiAgICAgICAgY2FzZSBcIm9iamVjdFwiOiB7XG4gICAgICAgICAgY29uc3Qgb2JqVHlwZSA9XG4gICAgICAgICAgICAvKiBTQUZFVFk6IEFQSSDrjbDsvZTroIjsnbTthLDsmYAgWm9kIOqygOymneq4sCDrk7HroZ0g6rOE7JW97J20IOydtCDqsJLsnZgg7YOA7J6F7J2EIOuztOyepe2VnOuLpC4gKi8gcGFyYW1UeXBlIGFzIHtcbiAgICAgICAgICAgICAgdDogc3RyaW5nO1xuICAgICAgICAgICAgICBwcm9wczogQXBpUGFyYW1bXTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgcmV0dXJuIGdldFpvZE9iamVjdEZyb21BcGlQYXJhbXMob2JqVHlwZS5wcm9wcyk7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBcImFycmF5XCI6IHtcbiAgICAgICAgICBjb25zdCBhcnJUeXBlID1cbiAgICAgICAgICAgIC8qIFNBRkVUWTogQVBJIOuNsOy9lOugiOydtO2EsOyZgCBab2Qg6rKA7Kad6riwIOuTseuhnSDqs4Tslb3snbQg7J20IOqwkuydmCDtg4DsnoXsnYQg67O07J6l7ZWc64ukLiAqLyBwYXJhbVR5cGUgYXMge1xuICAgICAgICAgICAgICB0OiBzdHJpbmc7XG4gICAgICAgICAgICAgIGVsZW1lbnRzVHlwZTogQXBpUGFyYW1UeXBlO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICByZXR1cm4gei5hcnJheShnZXRab2RUeXBlRnJvbUFwaVBhcmFtVHlwZShhcnJUeXBlLmVsZW1lbnRzVHlwZSwgcmVmZXJlbmNlcykpO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgXCJyZWZcIjoge1xuICAgICAgICAgIGNvbnN0IHJlZlR5cGUgPVxuICAgICAgICAgICAgLyogU0FGRVRZOiBBUEkg642w7L2U66CI7J207YSw7JmAIFpvZCDqsoDspp3quLAg65Ox66GdIOqzhOyVveydtCDsnbQg6rCS7J2YIO2DgOyeheydhCDrs7TsnqXtlZzri6QuICovIHBhcmFtVHlwZSBhcyB7XG4gICAgICAgICAgICAgIHQ6IHN0cmluZztcbiAgICAgICAgICAgICAgaWQ6IHN0cmluZztcbiAgICAgICAgICAgICAgYXJncz86IEFwaVBhcmFtVHlwZVtdO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAvLyBEYXRlIO2DgOyehSDsspjrpqxcbiAgICAgICAgICBpZiAocmVmVHlwZS5pZCA9PT0gXCJEYXRlXCIpIHtcbiAgICAgICAgICAgIHJldHVybiB6LmRhdGUoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8g6rCd7LK0IO2CpCDqtIDrpqwg7Jyg7Yu466as7YuwXG4gICAgICAgICAgaWYgKFtcIlBpY2tcIiwgXCJPbWl0XCJdLmluY2x1ZGVzKHJlZlR5cGUuaWQpKSB7XG4gICAgICAgICAgICBpZiAocmVmVHlwZS5hcmdzPy5sZW5ndGggIT09IDIpIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGDsnpjrqrvrkJwgJHtyZWZUeXBlLmlkfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgW29iaiwgbGl0ZXJhbE9yVW5pb25dID1cbiAgICAgICAgICAgICAgLyogU0FGRVRZOiBBUEkg642w7L2U66CI7J207YSw7JmAIFpvZCDqsoDspp3quLAg65Ox66GdIOqzhOyVveydtCDsnbQg6rCS7J2YIO2DgOyeheydhCDrs7TsnqXtlZzri6QuICovIHJlZlR5cGUuYXJncy5tYXAoXG4gICAgICAgICAgICAgICAgKGFyZykgPT4gZ2V0Wm9kVHlwZUZyb21BcGlQYXJhbVR5cGUoYXJnLCByZWZlcmVuY2VzKSxcbiAgICAgICAgICAgICAgKSBhcyBbQW55Wm9kT2JqZWN0LCB6LlpvZFVuaW9uPGFueT4gfCBBbnlab2RMaXRlcmFsXTtcblxuICAgICAgICAgICAgbGV0IGtleXM6IHN0cmluZ1tdID0gW107XG4gICAgICAgICAgICBpZiAobGl0ZXJhbE9yVW5pb24gaW5zdGFuY2VvZiB6LlpvZFVuaW9uKSB7XG4gICAgICAgICAgICAgIGtleXMgPSBsaXRlcmFsT3JVbmlvbi5kZWYub3B0aW9ucy5tYXAoXG4gICAgICAgICAgICAgICAgKG9wdGlvbjogeyBkZWY6IHsgdmFsdWVzOiBzdHJpbmdbXSB9IH0pID0+IG9wdGlvbi5kZWYudmFsdWVzWzBdLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAga2V5cyA9XG4gICAgICAgICAgICAgICAgLyogU0FGRVRZOiBBUEkg642w7L2U66CI7J207YSw7JmAIFpvZCDqsoDspp3quLAg65Ox66GdIOqzhOyVveydtCDsnbQg6rCS7J2YIO2DgOyeheydhCDrs7TsnqXtlZzri6QuICovIChcbiAgICAgICAgICAgICAgICAgIGxpdGVyYWxPclVuaW9uIGFzIHouWm9kTGl0ZXJhbDxzdHJpbmc+XG4gICAgICAgICAgICAgICAgKS5kZWYudmFsdWVzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qga2V5UmVjb3JkID0gT2JqZWN0LmZyb21FbnRyaWVzKGtleXMubWFwKChrZXkpID0+IFtrZXksIHRydWUgYXMgY29uc3RdKSk7XG4gICAgICAgICAgICBpZiAocmVmVHlwZS5pZCA9PT0gXCJQaWNrXCIpIHtcbiAgICAgICAgICAgICAgaWYgKG9iai5waWNrKSB7XG4gICAgICAgICAgICAgICAgLy8gb3hsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgLS0gWm9kIDQuMy42IHBpY2sg7YOA7J6FIO2YuO2ZmOyEsVxuICAgICAgICAgICAgICAgIHJldHVybiBvYmoucGljayhcbiAgICAgICAgICAgICAgICAgIC8qIFNBRkVUWTogQVBJIOuNsOy9lOugiOydtO2EsOyZgCBab2Qg6rKA7Kad6riwIOuTseuhnSDqs4Tslb3snbQg7J20IOqwkuydmCDtg4DsnoXsnYQg67O07J6l7ZWc64ukLiAqLyBrZXlSZWNvcmQgYXMgYW55LFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGlmIChvYmoub21pdCkge1xuICAgICAgICAgICAgICAgIC8vIG94bGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55IC0tIFpvZCA0LjMuNiBvbWl0IO2DgOyehSDtmLjtmZjshLFcbiAgICAgICAgICAgICAgICByZXR1cm4gb2JqLm9taXQoXG4gICAgICAgICAgICAgICAgICAvKiBTQUZFVFk6IEFQSSDrjbDsvZTroIjsnbTthLDsmYAgWm9kIOqygOymneq4sCDrk7HroZ0g6rOE7JW97J20IOydtCDqsJLsnZgg7YOA7J6F7J2EIOuztOyepe2VnOuLpC4gKi8ga2V5UmVjb3JkIGFzIGFueSxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChbXCJQYXJ0aWFsXCJdLmluY2x1ZGVzKHJlZlR5cGUuaWQpKSB7XG4gICAgICAgICAgICBpZiAocmVmVHlwZS5hcmdzPy5sZW5ndGggIT09IDEpIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGDsnpjrqrvrkJwgJHtyZWZUeXBlLmlkfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgb2JqID0gZ2V0Wm9kVHlwZUZyb21BcGlQYXJhbVR5cGUocmVmVHlwZS5hcmdzWzBdLCByZWZlcmVuY2VzKTtcbiAgICAgICAgICAgIC8vIG94bGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55IC0tIFBhcnRpYWwg7J247IiYIO2DgOyehSDsupDsiqTtjIVcbiAgICAgICAgICAgIHJldHVybiAvKiBTQUZFVFk6IEFQSSDrjbDsvZTroIjsnbTthLDsmYAgWm9kIOqygOymneq4sCDrk7HroZ0g6rOE7JW97J20IOydtCDqsJLsnZgg7YOA7J6F7J2EIOuztOyepe2VnOuLpC4gKi8gKFxuICAgICAgICAgICAgICBvYmogYXMgei5ab2RPYmplY3Q8YW55PlxuICAgICAgICAgICAgKS5wYXJ0aWFsKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZSA9IHJlZmVyZW5jZXNbcmVmVHlwZS5pZF07XG4gICAgICAgICAgaWYgKHJlZmVyZW5jZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gei51bmtub3duKCk7XG4gICAgICAgICAgICAvLyB0aHJvdyBuZXcgRXJyb3IoYHJlZiDssLjsobAg67aI6rCAICR7cmVmVHlwZS5pZH1gKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlZmVyZW5jZTtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFwidW5pb25cIjoge1xuICAgICAgICAgIGNvbnN0IHVuaW9uVHlwZSA9XG4gICAgICAgICAgICAvKiBTQUZFVFk6IEFQSSDrjbDsvZTroIjsnbTthLDsmYAgWm9kIOqygOymneq4sCDrk7HroZ0g6rOE7JW97J20IOydtCDqsJLsnZgg7YOA7J6F7J2EIOuztOyepe2VnOuLpC4gKi8gcGFyYW1UeXBlIGFzIHtcbiAgICAgICAgICAgICAgdDogc3RyaW5nO1xuICAgICAgICAgICAgICB0eXBlczogQXBpUGFyYW1UeXBlW107XG4gICAgICAgICAgICB9O1xuICAgICAgICAgIC8vIG51bGxhYmxlIOycoOuLiOyYqFxuICAgICAgICAgIGlmICh1bmlvblR5cGUudHlwZXMubGVuZ3RoID09PSAyICYmIHVuaW9uVHlwZS50eXBlcy5zb21lKCh0eXBlKSA9PiB0eXBlID09PSBcIm51bGxcIikpIHtcbiAgICAgICAgICAgIGlmICh1bmlvblR5cGUudHlwZXNbMF0gPT09IFwibnVsbFwiKSB7XG4gICAgICAgICAgICAgIHJldHVybiBnZXRab2RUeXBlRnJvbUFwaVBhcmFtVHlwZSh1bmlvblR5cGUudHlwZXNbMV0sIHJlZmVyZW5jZXMpLm51bGxhYmxlKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXR1cm4gZ2V0Wm9kVHlwZUZyb21BcGlQYXJhbVR5cGUodW5pb25UeXBlLnR5cGVzWzBdLCByZWZlcmVuY2VzKS5udWxsYWJsZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyDsnbzrsJgg7Jyg64uI7JioXG4gICAgICAgICAgcmV0dXJuIHoudW5pb24oXG4gICAgICAgICAgICB1bmlvblR5cGUudHlwZXMubWFwKCh0eXBlKSA9PiBnZXRab2RUeXBlRnJvbUFwaVBhcmFtVHlwZSh0eXBlLCByZWZlcmVuY2VzKSksXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFwiaW50ZXJzZWN0aW9uXCI6IHtcbiAgICAgICAgICBjb25zdCBpbnRlcnNlY3Rpb25UeXBlID1cbiAgICAgICAgICAgIC8qIFNBRkVUWTogQVBJIOuNsOy9lOugiOydtO2EsOyZgCBab2Qg6rKA7Kad6riwIOuTseuhnSDqs4Tslb3snbQg7J20IOqwkuydmCDtg4DsnoXsnYQg67O07J6l7ZWc64ukLiAqLyBwYXJhbVR5cGUgYXMge1xuICAgICAgICAgICAgICB0OiBzdHJpbmc7XG4gICAgICAgICAgICAgIHR5cGVzOiBBcGlQYXJhbVR5cGVbXTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgcmV0dXJuIGludGVyc2VjdGlvblR5cGUudHlwZXMucmVkdWNlKChyZXN1bHQsIHR5cGUsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZXNvbHZlZFR5cGUgPSBnZXRab2RUeXBlRnJvbUFwaVBhcmFtVHlwZSh0eXBlLCByZWZlcmVuY2VzKTtcbiAgICAgICAgICAgIGlmIChpbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgICByZXR1cm4gcmVzb2x2ZWRUeXBlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHouaW50ZXJzZWN0aW9uKHJlc3VsdCwgcmVzb2x2ZWRUeXBlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LCAvKiBTQUZFVFk6IEFQSSDrjbDsvZTroIjsnbTthLDsmYAgWm9kIOqygOymneq4sCDrk7HroZ0g6rOE7JW97J20IOydtCDqsJLsnZgg7YOA7J6F7J2EIOuztOyepe2VnOuLpC4gKi8gei51bmtub3duKCkgYXMgei5ab2RUeXBlKTtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFwidHVwbGUtdHlwZVwiOiB7XG4gICAgICAgICAgY29uc3QgdHVwbGVUeXBlID1cbiAgICAgICAgICAgIC8qIFNBRkVUWTogQVBJIOuNsOy9lOugiOydtO2EsOyZgCBab2Qg6rKA7Kad6riwIOuTseuhnSDqs4Tslb3snbQg7J20IOqwkuydmCDtg4DsnoXsnYQg67O07J6l7ZWc64ukLiAqLyBwYXJhbVR5cGUgYXMgQXBpUGFyYW1UeXBlLlR1cGxlVHlwZTtcbiAgICAgICAgICByZXR1cm4gei50dXBsZShcbiAgICAgICAgICAgIC8vIG94bGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55IC0tIOyDneyEseuQmOuKlCBab2RUdXBsZeydmCDtg4DsnoXsnYQg7LaU7KCB7ZWY6riwIOyWtOugpOybgFxuICAgICAgICAgICAgLyogU0FGRVRZOiBBUEkg642w7L2U66CI7J207YSw7JmAIFpvZCDqsoDspp3quLAg65Ox66GdIOqzhOyVveydtCDsnbQg6rCS7J2YIO2DgOyeheydhCDrs7TsnqXtlZzri6QuICovIHR1cGxlVHlwZS5lbGVtZW50cy5tYXAoXG4gICAgICAgICAgICAgIChlbGVtKSA9PiBnZXRab2RUeXBlRnJvbUFwaVBhcmFtVHlwZShlbGVtLCByZWZlcmVuY2VzKSxcbiAgICAgICAgICAgICkgYXMgYW55LFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB6LnVua25vd24oKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBBcGlQYXJhbSDrsLDsl7TsnYQgWm9kT2JqZWN066GcIOuzgO2ZmO2VqeuLiOuLpC5cbiAqIOqwgSDtjIzrnbzrr7jthLDsnZggb3B0aW9uYWwg7Jes67aA66W8IOuwmOyYge2VmOyXrCBab2Qg7Iqk7YKk66eI66W8IOyDneyEse2VqeuLiOuLpC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFpvZE9iamVjdEZyb21BcGlQYXJhbXMoXG4gIGFwaVBhcmFtczogQXBpUGFyYW1bXSxcbiAgcmVmZXJlbmNlczoge1xuICAgIFtpZDogc3RyaW5nXTogei5ab2RUeXBlO1xuICB9ID0ge30sXG4pOiB6LlpvZE9iamVjdCB7XG4gIHJldHVybiB6Lm9iamVjdChcbiAgICBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICBhcGlQYXJhbXMubWFwKChwYXJhbSkgPT4ge1xuICAgICAgICBsZXQgem9kVHlwZSA9IGdldFpvZFR5cGVGcm9tQXBpUGFyYW1UeXBlKHBhcmFtLnR5cGUsIHJlZmVyZW5jZXMpO1xuICAgICAgICBpZiAocGFyYW0ub3B0aW9uYWwpIHtcbiAgICAgICAgICB6b2RUeXBlID0gem9kVHlwZS5vcHRpb25hbCgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbcGFyYW0ubmFtZSwgem9kVHlwZV07XG4gICAgICB9KSxcbiAgICApLFxuICApO1xufVxuXG4vKipcbiAqIEV4dGVuZGVkQXBp66W8IFpvZE9iamVjdOuhnCDrs4DtmZjtlanri4jri6QuXG4gKiBUeXBlUGFyYW1ldGVy7JmAIOydvOuwmCDtjIzrnbzrr7jthLDrpbwg7LKY66as7ZWY66mwLFxuICogQ29udGV4dCwgUmVmS25leCwgX+uhnCDsi5zsnpHtlZjripQgb3B0aW9uYWwg7YyM652866+47YSw64qUIOygnOyZuO2VqeuLiOuLpC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFpvZE9iamVjdEZyb21BcGkoXG4gIGFwaTogRXh0ZW5kZWRBcGksXG4gIHJlZmVyZW5jZXM6IHtcbiAgICBbaWQ6IHN0cmluZ106IHouWm9kVHlwZTtcbiAgfSA9IHt9LFxuKSB7XG4gIGlmIChhcGkudHlwZVBhcmFtZXRlcnM/Lmxlbmd0aCA+IDApIHtcbiAgICBmb3IgKGNvbnN0IHR5cGVQYXJhbSBvZiBhcGkudHlwZVBhcmFtZXRlcnMpIHtcbiAgICAgIGlmICh0eXBlUGFyYW0uY29uc3RyYWludCkge1xuICAgICAgICBjb25zdCB6b2RUeXBlID0gZ2V0Wm9kVHlwZUZyb21BcGlQYXJhbVR5cGUodHlwZVBhcmFtLmNvbnN0cmFpbnQsIHJlZmVyZW5jZXMpO1xuXG4gICAgICAgIC8vIEZJWE1FOiByZWZlcmVuY2Vz64qUIOq4gOuhnOuyjCDsmKTruIzsoJ3tirjroZwsIHR5cGVQYXJhbS5pZChcIlRcIiDrk7Ep66W8IGtleeuhnCDsnbTroIfqsowg642u7Ja07JSM7JuM67KE66as66m0IGxvYWRlZFR5cGVz6rCAIOyYpOyXvOuQqC5cbiAgICAgICAgLy8gb3hsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgLS0g66CI7Y2865+w7IqkIO2DgOyehSDsupDsiqTtjIVcbiAgICAgICAgLyogU0FGRVRZOiBBUEkg642w7L2U66CI7J207YSw7JmAIFpvZCDqsoDspp3quLAg65Ox66GdIOqzhOyVveydtCDsnbQg6rCS7J2YIO2DgOyeheydhCDrs7TsnqXtlZzri6QuICovIChyZWZlcmVuY2VzW1xuICAgICAgICAgIHR5cGVQYXJhbS5pZFxuICAgICAgICBdIGFzIHouWm9kVHlwZTxhbnk+KSA9IHpvZFR5cGU7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGNvbnN0IFJlcVR5cGUgPSBnZXRab2RPYmplY3RGcm9tQXBpUGFyYW1zKFxuICAgIC8vIGFwaSBwYXJzaW5n7ZWcIOqysOqzvOqwgCBhcGkgcGFyYW1zXG4gICAgYXBpLnBhcmFtZXRlcnMuZmlsdGVyKFxuICAgICAgKHBhcmFtKSA9PlxuICAgICAgICAhQXBpUGFyYW1UeXBlLmlzQ29udGV4dChwYXJhbS50eXBlKSAmJlxuICAgICAgICAhQXBpUGFyYW1UeXBlLmlzUmVmS25leChwYXJhbS50eXBlKSAmJlxuICAgICAgICAhKHBhcmFtLm9wdGlvbmFsICYmIHBhcmFtLm5hbWUuc3RhcnRzV2l0aChcIl9cIikpLCAvLyBf66GcIOyLnOyeke2VmOuKlCDtjIzrnbzrr7jthLDripQg7KCc7Jm4XG4gICAgKSxcbiAgICByZWZlcmVuY2VzLFxuICApO1xuICByZXR1cm4gUmVxVHlwZTtcbn1cblxuLypcbiAqIEFQSSDtg4DsnoUg7KCV7J2Y66W8IFR5cGVTY3JpcHQg7L2U65OcIOusuOyekOyXtOuhnCDrs4DtmZjtlZjquLAg7JyE7ZWcIO2VqOyImOuTpOyeheuLiOuLpC5cbiAqL1xuXG4vKipcbiAqIEFwaVBhcmFtVHlwZeydhCBUeXBlU2NyaXB0IO2DgOyehSDrrLjsnpDsl7TroZwg67OA7ZmY7ZWp64uI64ukLlxuICogdW5pb24sIGludGVyc2VjdGlvbiwgYXJyYXksIHJlZiDrk7Eg66qo65OgIO2DgOyeheydhCBUUyDrrLjrspXsnLzroZwg7ZGc7ZiE7ZWY66mwLFxuICogaW1wb3J06rCAIO2VhOyalO2VnCDtg4DsnoUgSUTripQgaW5qZWN0SW1wb3J0S2V5c+yXkCDsiJjsp5Htlanri4jri6QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcGlQYXJhbVR5cGVUb1RzVHlwZTxJbnB1dD4oaW5wdXQ6IElucHV0LCBpbmplY3RJbXBvcnRLZXlzOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gIGNvbnN0IHBhcmFtVHlwZSA9IHBhcnNlQXBpUGFyYW1UeXBlKGlucHV0KTtcbiAgaWYgKFxuICAgIFtcbiAgICAgIFwic3RyaW5nXCIsXG4gICAgICBcIm51bWJlclwiLFxuICAgICAgXCJib29sZWFuXCIsXG4gICAgICBcInRydWVcIixcbiAgICAgIFwiZmFsc2VcIixcbiAgICAgIFwibnVsbFwiLFxuICAgICAgXCJ1bmRlZmluZWRcIixcbiAgICAgIFwidm9pZFwiLFxuICAgICAgXCJhbnlcIixcbiAgICAgIFwidW5rbm93blwiLFxuICAgIF0uaW5jbHVkZXMoXG4gICAgICAvKiBTQUZFVFk6IEFQSSDrjbDsvZTroIjsnbTthLDsmYAgWm9kIOqygOymneq4sCDrk7HroZ0g6rOE7JW97J20IOydtCDqsJLsnZgg7YOA7J6F7J2EIOuztOyepe2VnOuLpC4gKi8gcGFyYW1UeXBlIGFzIHN0cmluZyxcbiAgICApXG4gICkge1xuICAgIHJldHVybiAvKiBTQUZFVFk6IEFQSSDrjbDsvZTroIjsnbTthLDsmYAgWm9kIOqygOymneq4sCDrk7HroZ0g6rOE7JW97J20IOydtCDqsJLsnZgg7YOA7J6F7J2EIOuztOyepe2VnOuLpC4gKi8gcGFyYW1UeXBlIGFzIHN0cmluZztcbiAgfSBlbHNlIGlmIChBcGlQYXJhbVR5cGUuaXNPYmplY3QocGFyYW1UeXBlKSkge1xuICAgIHJldHVybiBgeyAke2FwaVBhcmFtVG9Uc0NvZGUocGFyYW1UeXBlLnByb3BzLCBpbmplY3RJbXBvcnRLZXlzKX0gfWA7XG4gIH0gZWxzZSBpZiAoQXBpUGFyYW1UeXBlLmlzU3RyaW5nTGl0ZXJhbChwYXJhbVR5cGUpKSB7XG4gICAgcmV0dXJuIGBcIiR7cGFyYW1UeXBlLnZhbHVlfVwiYDtcbiAgfSBlbHNlIGlmIChBcGlQYXJhbVR5cGUuaXNOdW1lcmljTGl0ZXJhbChwYXJhbVR5cGUpKSB7XG4gICAgcmV0dXJuIFN0cmluZyhwYXJhbVR5cGUudmFsdWUpO1xuICB9IGVsc2UgaWYgKEFwaVBhcmFtVHlwZS5pc1VuaW9uKHBhcmFtVHlwZSkpIHtcbiAgICByZXR1cm4gcGFyYW1UeXBlLnR5cGVzLm1hcCgodHlwZSkgPT4gYXBpUGFyYW1UeXBlVG9Uc1R5cGUodHlwZSwgaW5qZWN0SW1wb3J0S2V5cykpLmpvaW4oXCIgfCBcIik7XG4gIH0gZWxzZSBpZiAoQXBpUGFyYW1UeXBlLmlzSW50ZXJzZWN0aW9uKHBhcmFtVHlwZSkpIHtcbiAgICByZXR1cm4gcGFyYW1UeXBlLnR5cGVzLm1hcCgodHlwZSkgPT4gYXBpUGFyYW1UeXBlVG9Uc1R5cGUodHlwZSwgaW5qZWN0SW1wb3J0S2V5cykpLmpvaW4oXCIgJiBcIik7XG4gIH0gZWxzZSBpZiAoQXBpUGFyYW1UeXBlLmlzQXJyYXkocGFyYW1UeXBlKSkge1xuICAgIC8vIGludGVyc2VjdGlvbuydtOuCmCB1bmlvbuyduCDqsr3smrAg6rSE7Zi466GcIOqwkOyLuOq4sFxuICAgIGNvbnN0IGVsZW1lbnRzVHlwZSA9IGFwaVBhcmFtVHlwZVRvVHNUeXBlKHBhcmFtVHlwZS5lbGVtZW50c1R5cGUsIGluamVjdEltcG9ydEtleXMpO1xuICAgIHJldHVybiBBcGlQYXJhbVR5cGUuaXNJbnRlcnNlY3Rpb24ocGFyYW1UeXBlLmVsZW1lbnRzVHlwZSkgfHxcbiAgICAgIEFwaVBhcmFtVHlwZS5pc1VuaW9uKHBhcmFtVHlwZS5lbGVtZW50c1R5cGUpXG4gICAgICA/IGAoJHtlbGVtZW50c1R5cGV9KVtdYFxuICAgICAgOiBgJHtlbGVtZW50c1R5cGV9W11gO1xuICB9IGVsc2UgaWYgKEFwaVBhcmFtVHlwZS5pc1JlZihwYXJhbVR5cGUpKSB7XG4gICAgaWYgKCFbXCJQaWNrXCIsIFwiT21pdFwiLCBcIlByb21pc2VcIiwgXCJQYXJ0aWFsXCIsIFwiRGF0ZVwiXS5pbmNsdWRlcyhwYXJhbVR5cGUuaWQpKSB7XG4gICAgICAvLyBpbXBvcnRLZXlzIOyduOygneyFmFxuICAgICAgaW5qZWN0SW1wb3J0S2V5cy5wdXNoKHBhcmFtVHlwZS5pZCk7XG4gICAgfVxuICAgIGlmIChwYXJhbVR5cGUuYXJncyA9PT0gdW5kZWZpbmVkIHx8IHBhcmFtVHlwZS5hcmdzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHBhcmFtVHlwZS5pZDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGAke3BhcmFtVHlwZS5pZH08JHtwYXJhbVR5cGUuYXJnc1xuICAgICAgICAubWFwKChhcmcpID0+IGFwaVBhcmFtVHlwZVRvVHNUeXBlKGFyZywgaW5qZWN0SW1wb3J0S2V5cykpXG4gICAgICAgIC5qb2luKFwiLFwiKX0+YDtcbiAgICB9XG4gIH0gZWxzZSBpZiAoQXBpUGFyYW1UeXBlLmlzSW5kZXhlZEFjY2VzcyhwYXJhbVR5cGUpKSB7XG4gICAgcmV0dXJuIGAke2FwaVBhcmFtVHlwZVRvVHNUeXBlKFxuICAgICAgcGFyYW1UeXBlLm9iamVjdCxcbiAgICAgIGluamVjdEltcG9ydEtleXMsXG4gICAgKX1bJHthcGlQYXJhbVR5cGVUb1RzVHlwZShwYXJhbVR5cGUuaW5kZXgsIGluamVjdEltcG9ydEtleXMpfV1gO1xuICB9IGVsc2UgaWYgKEFwaVBhcmFtVHlwZS5pc1R1cGxlVHlwZShwYXJhbVR5cGUpKSB7XG4gICAgcmV0dXJuIGBbICR7cGFyYW1UeXBlLmVsZW1lbnRzLm1hcCgoZWxlbSkgPT4gYXBpUGFyYW1UeXBlVG9Uc1R5cGUoZWxlbSwgaW5qZWN0SW1wb3J0S2V5cykpfSBdYDtcbiAgfSBlbHNlIGlmIChBcGlQYXJhbVR5cGUuaXNUeXBlUGFyYW0ocGFyYW1UeXBlKSkge1xuICAgIHJldHVybiBgJHtwYXJhbVR5cGUuaWR9JHtcbiAgICAgIHBhcmFtVHlwZS5jb25zdHJhaW50XG4gICAgICAgID8gYCBleHRlbmRzICR7YXBpUGFyYW1UeXBlVG9Uc1R5cGUocGFyYW1UeXBlLmNvbnN0cmFpbnQsIGluamVjdEltcG9ydEtleXMpfWBcbiAgICAgICAgOiBcIlwiXG4gICAgfWA7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGByZXNvbHZlIOu2iOqwgCBBcGlQYXJhbVR5cGUgJHtwYXJhbVR5cGV9YCk7XG4gIH1cbn1cblxuLyoqXG4gKiBBcGlQYXJhbSDrsLDsl7TsnYQgVHlwZVNjcmlwdCDtlajsiJgg7YyM652866+47YSwIOy9lOuTnOuhnCDrs4DtmZjtlanri4jri6QuXG4gKiDsmIg6IFwibmFtZTogc3RyaW5nLCBhZ2U/OiBudW1iZXIsIGFjdGl2ZTogYm9vbGVhbiA9IHRydWVcIlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXBpUGFyYW1Ub1RzQ29kZShwYXJhbXM6IEFwaVBhcmFtW10sIGluamVjdEltcG9ydEtleXM6IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgcmV0dXJuIHBhcmFtc1xuICAgIC5tYXAoKHBhcmFtKSA9PiB7XG4gICAgICByZXR1cm4gYCR7cGFyYW0ubmFtZX0ke1xuICAgICAgICBwYXJhbS5vcHRpb25hbCAmJiAhcGFyYW0uZGVmYXVsdERlZiA/IFwiP1wiIDogXCJcIlxuICAgICAgfTogJHthcGlQYXJhbVR5cGVUb1RzVHlwZShwYXJhbS50eXBlLCBpbmplY3RJbXBvcnRLZXlzKX0ke1xuICAgICAgICBwYXJhbS5kZWZhdWx0RGVmID8gYD0gJHtwYXJhbS5kZWZhdWx0RGVmfWAgOiBcIlwiXG4gICAgICB9YDtcbiAgICB9KVxuICAgIC5qb2luKFwiLCBcIik7XG59XG5cbi8qKlxuICogQXBpUGFyYW0g67Cw7Je07J2EIFR5cGVTY3JpcHQg6rCd7LK0IO2DgOyehSDsvZTrk5zroZwg67OA7ZmY7ZWp64uI64ukLlxuICog7JiIOiBcInsgbmFtZTogc3RyaW5nLCBhZ2U/OiBudW1iZXIsIGFjdGl2ZTogYm9vbGVhbiA9IHRydWUgfVwiXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcGlQYXJhbVRvVHNDb2RlQXNPYmplY3QocGFyYW1zOiBBcGlQYXJhbVtdLCBpbmplY3RJbXBvcnRLZXlzOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gIHJldHVybiBgeyAke3BhcmFtc1xuICAgIC5tYXAoXG4gICAgICAocGFyYW0pID0+XG4gICAgICAgIGAke3BhcmFtLm5hbWV9JHtwYXJhbS5vcHRpb25hbCA/IFwiP1wiIDogXCJcIn06ICR7YXBpUGFyYW1UeXBlVG9Uc1R5cGUoXG4gICAgICAgICAgcGFyYW0udHlwZSxcbiAgICAgICAgICBpbmplY3RJbXBvcnRLZXlzLFxuICAgICAgICApfSR7cGFyYW0uZGVmYXVsdERlZiA/IGA9ICR7cGFyYW0uZGVmYXVsdERlZn1gIDogXCJcIn1gLFxuICAgIClcbiAgICAuam9pbihcIiwgXCIpfSB9YDtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBNEZBLFNBQWdCLGtCQUF5QixPQUE0QjtDQUNuRSxNQUFNLFNBQVMsbUJBQW1CLFVBQVUsS0FBSztDQUNqRCxJQUFJLENBQUMsT0FBTyxTQUNWLE1BQU0sSUFBSSxNQUFNLDRCQUE0QixFQUFFLGNBQWMsT0FBTyxLQUFLLEdBQUc7Q0FFN0UsT0FBTyxPQUFPO0FBQ2hCOzs7OztBQU1BLFNBQWdCLGtCQUFrQixXQUF5QjtDQUN6RCxJQUFJLGFBQWEsVUFBVSxTQUFTLEdBQ2xDLE9BQU8sVUFBVSxPQUFPO01BRXhCLE9BQU87QUFFWDs7Ozs7O0FBV0EsU0FBZ0IsMkJBQ2QsT0FDQSxZQUdXO0NBQ1gsTUFBTSxZQUFZLGtCQUFrQixLQUFLO0NBQ3pDLFFBQVEsV0FBUjtFQUNFLEtBQUssVUFDSCxPQUFPLEVBQUUsT0FBTztFQUNsQixLQUFLLFVBQ0gsT0FBTyxFQUFFLE9BQU87RUFDbEIsS0FBSyxXQUNILE9BQU8sRUFBRSxRQUFRO0VBQ25CLFNBQVM7R0FDUCxNQUFNLFVBQ21EO0dBSXpELFFBQVEsUUFBUSxHQUFoQjtJQUNFLEtBQUs7SUFDTCxLQUFLLG1CQUNILE9BQU8sRUFBRSxRQUFRLFFBQVEsS0FBSztJQUNoQyxLQUFLLFVBTUgsT0FBTywwQkFBMEJBLFVBQVEsS0FBSztJQUVoRCxLQUFLLFNBQVM7S0FDWixNQUFNLFVBQ21EO0tBSXpELE9BQU8sRUFBRSxNQUFNLDJCQUEyQixRQUFRLGNBQWMsVUFBVSxDQUFDO0lBQzdFO0lBQ0EsS0FBSyxPQUFPO0tBQ1YsTUFBTSxVQUNtRDtLQU16RCxJQUFJLFFBQVEs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
@@ -143,7 +143,7 @@ export type SonamuConfig<TSinkId extends string = string, TFilterId extends stri
143
143
  };
144
144
  export type SonamuServerOptions = {
145
145
  baseUrl?: string;
146
- fastify?: Omit<FastifyServerOptions, "logger">;
146
+ fastify?: Omit<FastifyServerOptions, "logger" | "loggerInstance">;
147
147
  listen?: {
148
148
  port: number;
149
149
  host?: string;