sonamu 0.9.19 → 0.10.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 (282) hide show
  1. package/dist/_virtual/_rolldown/runtime.js +36 -0
  2. package/dist/ai/agents/agent.js +5 -7
  3. package/dist/ai/agents/index.js +1 -2
  4. package/dist/ai/agents/types.js +1 -1
  5. package/dist/ai/index.js +1 -2
  6. package/dist/ai/providers/rtzr/api.js +2 -3
  7. package/dist/ai/providers/rtzr/error.js +14 -29
  8. package/dist/ai/providers/rtzr/index.js +1 -2
  9. package/dist/ai/providers/rtzr/model.js +13 -20
  10. package/dist/ai/providers/rtzr/options.js +2 -3
  11. package/dist/ai/providers/rtzr/provider.js +2 -3
  12. package/dist/ai/providers/rtzr/utils.js +12 -21
  13. package/dist/api/base-frame.js +4 -4
  14. package/dist/api/caster.js +21 -38
  15. package/dist/api/code-converters.js +41 -98
  16. package/dist/api/config.d.ts +1 -10
  17. package/dist/api/config.d.ts.map +1 -1
  18. package/dist/api/config.js +9 -8
  19. package/dist/api/context.js +2 -3
  20. package/dist/api/decorators.js +80 -116
  21. package/dist/api/index.js +2 -3
  22. package/dist/api/secret.js +6 -10
  23. package/dist/api/sonamu.d.ts.map +1 -1
  24. package/dist/api/sonamu.js +200 -387
  25. package/dist/api/validator.js +5 -8
  26. package/dist/api/websocket-helpers.js +21 -32
  27. package/dist/auth/audit-log/builders.js +2 -3
  28. package/dist/auth/audit-log/events.js +2 -2
  29. package/dist/auth/audit-log/plugin.js +30 -61
  30. package/dist/auth/audit-log-ingestor.js +19 -41
  31. package/dist/auth/auth-generator.js +16 -41
  32. package/dist/auth/better-auth-entities.js +3 -4
  33. package/dist/auth/index.js +2 -3
  34. package/dist/auth/knex-adapter.js +18 -45
  35. package/dist/auth/plugins/entity-definitions/admin.js +2 -2
  36. package/dist/auth/plugins/entity-definitions/anonymous.js +2 -2
  37. package/dist/auth/plugins/entity-definitions/api-key.js +2 -2
  38. package/dist/auth/plugins/entity-definitions/audit-log.js +2 -2
  39. package/dist/auth/plugins/entity-definitions/index.js +2 -3
  40. package/dist/auth/plugins/entity-definitions/jwt.js +2 -2
  41. package/dist/auth/plugins/entity-definitions/organization.js +2 -2
  42. package/dist/auth/plugins/entity-definitions/passkey.js +2 -2
  43. package/dist/auth/plugins/entity-definitions/phone-number.js +2 -2
  44. package/dist/auth/plugins/entity-definitions/sso.js +2 -2
  45. package/dist/auth/plugins/entity-definitions/two-factor.js +2 -2
  46. package/dist/auth/plugins/entity-definitions/types.js +1 -1
  47. package/dist/auth/plugins/entity-definitions/username.js +2 -2
  48. package/dist/auth/plugins/index.js +1 -2
  49. package/dist/auth/plugins/wrappers/admin.js +2 -3
  50. package/dist/auth/plugins/wrappers/anonymous.js +2 -3
  51. package/dist/auth/plugins/wrappers/api-key.js +2 -3
  52. package/dist/auth/plugins/wrappers/index.js +1 -2
  53. package/dist/auth/plugins/wrappers/jwt.js +2 -3
  54. package/dist/auth/plugins/wrappers/organization.js +2 -3
  55. package/dist/auth/plugins/wrappers/passkey.js +2 -3
  56. package/dist/auth/plugins/wrappers/phone-number.js +2 -3
  57. package/dist/auth/plugins/wrappers/sso.js +2 -3
  58. package/dist/auth/plugins/wrappers/two-factor.js +2 -3
  59. package/dist/auth/plugins/wrappers/username.js +2 -3
  60. package/dist/bin/build-config.js +2 -2
  61. package/dist/bin/cli.js +151 -258
  62. package/dist/bin/fixture.d.ts.map +1 -1
  63. package/dist/bin/fixture.js +55 -97
  64. package/dist/bin/hmr-hook-register.js +3 -3
  65. package/dist/bin/migrate-targets.d.ts +3 -0
  66. package/dist/bin/migrate-targets.d.ts.map +1 -0
  67. package/dist/bin/migrate-targets.js +11 -0
  68. package/dist/bin/test-command.js +25 -55
  69. package/dist/bin/ts-loader-register.js +5 -6
  70. package/dist/bin/ts-loader-registration.js +6 -13
  71. package/dist/cache/cache-manager.js +3 -4
  72. package/dist/cache/decorator.js +11 -21
  73. package/dist/cache/drivers.js +2 -3
  74. package/dist/cache/index.js +2 -3
  75. package/dist/cache/types.js +1 -1
  76. package/dist/cache-control/cache-control.js +21 -34
  77. package/dist/cache-control/types.js +1 -1
  78. package/dist/compress/compress.js +10 -10
  79. package/dist/compress/index.js +1 -2
  80. package/dist/compress/types.js +1 -1
  81. package/dist/cone/cone-generator.js +25 -63
  82. package/dist/database/_batch_update.js +26 -46
  83. package/dist/database/base-model.js +44 -97
  84. package/dist/database/base-model.types.js +1 -1
  85. package/dist/database/db.d.ts +8 -14
  86. package/dist/database/db.d.ts.map +1 -1
  87. package/dist/database/db.js +127 -72
  88. package/dist/database/knex.js +5 -8
  89. package/dist/database/puri-subset.types.js +1 -1
  90. package/dist/database/puri-wrapper.js +11 -15
  91. package/dist/database/puri.js +117 -234
  92. package/dist/database/puri.types.js +3 -4
  93. package/dist/database/transaction-context.js +4 -5
  94. package/dist/database/upsert-builder.js +109 -176
  95. package/dist/dict/en.d.ts +1 -0
  96. package/dist/dict/en.d.ts.map +1 -1
  97. package/dist/dict/en.js +4 -4
  98. package/dist/dict/index.js +2 -3
  99. package/dist/dict/ko.d.ts +1 -0
  100. package/dist/dict/ko.d.ts.map +1 -1
  101. package/dist/dict/ko.js +4 -4
  102. package/dist/dict/rc-keys.js +3 -4
  103. package/dist/dict/sd.js +8 -19
  104. package/dist/dict/sonamu-dictionary.js +141 -284
  105. package/dist/dict/types.js +1 -1
  106. package/dist/dict/utils.js +4 -5
  107. package/dist/entity/entity-manager.d.ts +2 -2
  108. package/dist/entity/entity-manager.js +34 -82
  109. package/dist/entity/entity-template-cone.js +33 -66
  110. package/dist/entity/entity.js +156 -310
  111. package/dist/env.d.ts +14 -0
  112. package/dist/env.d.ts.map +1 -0
  113. package/dist/env.js +75 -0
  114. package/dist/exceptions/error-handler.js +2 -3
  115. package/dist/exceptions/so-exceptions.js +7 -5
  116. package/dist/filter/index.js +1 -2
  117. package/dist/filter/types.js +3 -4
  118. package/dist/filter/utils.js +21 -54
  119. package/dist/index.js +8 -7
  120. package/dist/logger/category.js +6 -12
  121. package/dist/logger/configure.js +23 -34
  122. package/dist/migration/code-generation.js +146 -314
  123. package/dist/migration/index-where-predicate.js +52 -144
  124. package/dist/migration/migration-set.js +19 -33
  125. package/dist/migration/migrator.d.ts +2 -0
  126. package/dist/migration/migrator.d.ts.map +1 -1
  127. package/dist/migration/migrator.js +69 -53
  128. package/dist/migration/postgresql-schema-reader.js +126 -225
  129. package/dist/migration/slack-confirm.d.ts +1 -0
  130. package/dist/migration/slack-confirm.d.ts.map +1 -1
  131. package/dist/migration/slack-confirm.js +28 -38
  132. package/dist/migration/types.js +1 -1
  133. package/dist/naite/messaging-types.js +1 -1
  134. package/dist/naite/naite-reporter.js +15 -32
  135. package/dist/naite/naite.js +43 -76
  136. package/dist/ssr/index.js +6 -9
  137. package/dist/ssr/registry.js +10 -18
  138. package/dist/ssr/renderer.js +10 -21
  139. package/dist/ssr/types.js +1 -1
  140. package/dist/storage/base-file.js +5 -10
  141. package/dist/storage/buffered-file.js +3 -4
  142. package/dist/storage/drivers.js +2 -3
  143. package/dist/storage/index.js +2 -3
  144. package/dist/storage/s3-driver.js +5 -9
  145. package/dist/storage/storage-manager.js +5 -5
  146. package/dist/storage/types.js +1 -1
  147. package/dist/storage/uploaded-file.js +4 -6
  148. package/dist/stream/index.js +1 -2
  149. package/dist/stream/sse.js +8 -13
  150. package/dist/stream/ws-audience-resolver.js +5 -5
  151. package/dist/stream/ws-audience.js +3 -4
  152. package/dist/stream/ws-cluster-bus.js +3 -4
  153. package/dist/stream/ws-core.js +1 -1
  154. package/dist/stream/ws-delivery.js +11 -25
  155. package/dist/stream/ws-local-connection-store.js +9 -18
  156. package/dist/stream/ws-presence-store.js +43 -97
  157. package/dist/stream/ws-registry.js +17 -22
  158. package/dist/stream/ws-telemetry-memory.js +38 -45
  159. package/dist/stream/ws-telemetry-trace.js +4 -6
  160. package/dist/stream/ws-telemetry.js +82 -135
  161. package/dist/stream/ws.js +47 -91
  162. package/dist/syncer/api-parser.js +81 -147
  163. package/dist/syncer/checksum.js +9 -20
  164. package/dist/syncer/code-generator.js +29 -47
  165. package/dist/syncer/entity-operations.js +17 -27
  166. package/dist/syncer/event-batcher.js +8 -15
  167. package/dist/syncer/file-patterns.js +3 -4
  168. package/dist/syncer/file-tracking.js +6 -10
  169. package/dist/syncer/index.js +1 -2
  170. package/dist/syncer/module-loader.js +10 -26
  171. package/dist/syncer/syncer-actions.js +19 -37
  172. package/dist/syncer/syncer.js +46 -98
  173. package/dist/syncer/watcher.js +12 -26
  174. package/dist/tasks/decorator.js +7 -11
  175. package/dist/tasks/step-wrapper.js +7 -8
  176. package/dist/tasks/workflow-manager.js +18 -25
  177. package/dist/template/entity-converter.js +40 -64
  178. package/dist/template/helpers.js +32 -63
  179. package/dist/template/implementations/entity.template.js +7 -11
  180. package/dist/template/implementations/entry-server.template.js +2 -3
  181. package/dist/template/implementations/generated.template.js +25 -51
  182. package/dist/template/implementations/generated_http.template.js +31 -58
  183. package/dist/template/implementations/generated_sso.template.js +45 -85
  184. package/dist/template/implementations/init_types.template.js +4 -7
  185. package/dist/template/implementations/model.template.js +5 -10
  186. package/dist/template/implementations/model_test.template.js +2 -3
  187. package/dist/template/implementations/queries.template.js +4 -7
  188. package/dist/template/implementations/sd.template.js +17 -35
  189. package/dist/template/implementations/services.template.js +18 -30
  190. package/dist/template/implementations/view_form.template.js +72 -125
  191. package/dist/template/implementations/view_id_all_select.template.js +2 -3
  192. package/dist/template/implementations/view_list.template.js +86 -143
  193. package/dist/template/implementations/view_search_input.template.js +2 -3
  194. package/dist/template/index.js +5 -8
  195. package/dist/template/template-manager.js +13 -26
  196. package/dist/template/template-types.js +2 -3
  197. package/dist/template/template.js +7 -11
  198. package/dist/template/zod-converter.js +173 -348
  199. package/dist/testing/_relation-graph.js +18 -37
  200. package/dist/testing/bootstrap.js +5 -8
  201. package/dist/testing/data-explorer.js +34 -78
  202. package/dist/testing/dev-test-routes.js +54 -60
  203. package/dist/testing/dev-vitest-manager.js +33 -84
  204. package/dist/testing/faker-mappings.js +3 -4
  205. package/dist/testing/fixture-generator.d.ts +2 -1
  206. package/dist/testing/fixture-generator.d.ts.map +1 -1
  207. package/dist/testing/fixture-generator.js +159 -321
  208. package/dist/testing/fixture-loader.js +2 -2
  209. package/dist/testing/fixture-manager.d.ts.map +1 -1
  210. package/dist/testing/fixture-manager.js +124 -227
  211. package/dist/testing/global-setup.d.ts.map +1 -1
  212. package/dist/testing/global-setup.js +29 -17
  213. package/dist/testing/index.js +1 -2
  214. package/dist/testing/naite-vitest-reporter.js +2 -3
  215. package/dist/testing/parallel-db-manager.js +5 -3
  216. package/dist/testing/vitest-helpers.d.ts.map +1 -1
  217. package/dist/testing/vitest-helpers.js +15 -12
  218. package/dist/types/types.d.ts +14 -14
  219. package/dist/types/types.js +27 -50
  220. package/dist/ui/ai-api.js +6 -11
  221. package/dist/ui/ai-client.js +86 -134
  222. package/dist/ui/api.js +99 -195
  223. package/dist/ui/cdd-service.js +78 -130
  224. package/dist/ui/cdd-types.js +1 -1
  225. package/dist/ui-web/assets/{index-Df8q-fhb.js → index-DFStGyd0.js} +49 -49
  226. package/dist/ui-web/assets/index-Dx4ap5i4.css +1 -0
  227. package/dist/ui-web/index.html +2 -2
  228. package/dist/utils/async-utils.js +13 -25
  229. package/dist/utils/class-name.js +3 -4
  230. package/dist/utils/console-util.js +11 -26
  231. package/dist/utils/controller.d.ts.map +1 -1
  232. package/dist/utils/controller.js +14 -12
  233. package/dist/utils/esm-utils.js +5 -8
  234. package/dist/utils/formatter.js +10 -22
  235. package/dist/utils/fs-utils.js +14 -25
  236. package/dist/utils/lodash-able.js +3 -4
  237. package/dist/utils/model.js +7 -14
  238. package/dist/utils/object-utils.js +41 -73
  239. package/dist/utils/path-utils.js +5 -9
  240. package/dist/utils/process-utils.js +4 -7
  241. package/dist/utils/sql-parser.js +6 -13
  242. package/dist/utils/type-utils.js +16 -26
  243. package/dist/utils/utils.js +18 -40
  244. package/dist/utils/zod-error.js +9 -16
  245. package/dist/vector/chunking.js +24 -37
  246. package/dist/vector/config.js +2 -2
  247. package/dist/vector/embedding.js +8 -19
  248. package/dist/vector/index.js +1 -2
  249. package/dist/vector/types.js +1 -1
  250. package/package.json +7 -7
  251. package/src/__tests__/env.test.ts +127 -0
  252. package/src/api/__tests__/config.test.ts +10 -1
  253. package/src/api/config.ts +4 -12
  254. package/src/api/sonamu.ts +14 -4
  255. package/src/bin/__tests__/migrate-targets.test.ts +28 -0
  256. package/src/bin/__tests__/test-command.test.ts +82 -1
  257. package/src/bin/cli.ts +9 -18
  258. package/src/bin/fixture.ts +5 -4
  259. package/src/bin/migrate-targets.ts +7 -0
  260. package/src/bin/test-command.ts +2 -2
  261. package/src/database/__tests__/db.test.ts +175 -0
  262. package/src/database/db.ts +193 -71
  263. package/src/dict/en.ts +2 -0
  264. package/src/dict/ko.ts +2 -0
  265. package/src/env.ts +123 -0
  266. package/src/migration/__tests__/migrator.test.ts +149 -0
  267. package/src/migration/migrator.ts +74 -17
  268. package/src/migration/slack-confirm.ts +21 -0
  269. package/src/skills/sonamu/database.md +1 -1
  270. package/src/skills/sonamu/entity-basic.md +31 -0
  271. package/src/skills/sonamu/puri.md +22 -0
  272. package/src/skills/sonamu/testing-devrunner.md +1 -1
  273. package/src/skills/sonamu/upsert.md +53 -6
  274. package/src/stream/ws-telemetry-memory.ts +2 -2
  275. package/src/testing/fixture-generator.ts +2 -1
  276. package/src/testing/fixture-manager.ts +3 -4
  277. package/src/testing/global-setup.ts +42 -18
  278. package/src/testing/vitest-helpers.ts +14 -0
  279. package/src/utils/controller.ts +14 -7
  280. package/tsdown.api.config.ts +6 -0
  281. package/dist/_virtual/rolldown_runtime.js +0 -39
  282. package/dist/ui-web/assets/index-D4rYm-Xz.css +0 -1
@@ -0,0 +1,36 @@
1
+ import "node:module";
2
+ //#region \0rolldown/runtime.js
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __esmMin = (fn, res, err) => () => {
8
+ if (err) throw err[0];
9
+ try {
10
+ return fn && (res = fn(fn = 0)), res;
11
+ } catch (e) {
12
+ throw err = [e], e;
13
+ }
14
+ };
15
+ var __exportAll = (all, no_symbols) => {
16
+ let target = {};
17
+ for (var name in all) __defProp(target, name, {
18
+ get: all[name],
19
+ enumerable: true
20
+ });
21
+ if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
22
+ return target;
23
+ };
24
+ var __copyProps = (to, from, except, desc) => {
25
+ if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
26
+ key = keys[i];
27
+ if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
28
+ get: ((k) => from[k]).bind(null, key),
29
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
30
+ });
31
+ }
32
+ return to;
33
+ };
34
+ var __toCommonJS = (mod) => __hasOwnProp.call(mod, "module.exports") ? mod["module.exports"] : __copyProps(__defProp({}, "__esModule", { value: true }), mod);
35
+ //#endregion
36
+ export { __esmMin, __exportAll, __toCommonJS };
@@ -5,12 +5,12 @@ 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
-
9
8
  //#region src/ai/agents/agent.ts
10
9
  init_category();
11
10
  init_class_name();
12
11
  const toolDefinitions = [];
13
12
  var BaseAgentClass = class {
13
+ agentName;
14
14
  logger;
15
15
  _als = new AsyncLocalStorage();
16
16
  constructor(agentName = this.constructor.name) {
@@ -51,9 +51,7 @@ var BaseAgentClass = class {
51
51
  function tools(options) {
52
52
  const { name, description, schema, needsApproval, toModelOutput, providerOptions } = options;
53
53
  return (target, propertyKey, descriptor) => {
54
- if (!(target instanceof BaseAgentClass)) {
55
- throw new Error("Target must be a subclass of BaseAgentClass");
56
- }
54
+ if (!(target instanceof BaseAgentClass)) throw new Error("Target must be a subclass of BaseAgentClass");
57
55
  const modelName = getModelNameFromClassName(target.constructor.name);
58
56
  const methodName = propertyKey;
59
57
  const originalMethod = descriptor.value;
@@ -66,7 +64,7 @@ function tools(options) {
66
64
  return originalMethod.apply(this, args);
67
65
  };
68
66
  descriptor.value = method;
69
- const defaultPath = modelName !== undefined ? `${inflection.camelize((modelName ?? "").replace(/Model$/, "").replace(/Frame$/, ""), true)}.${inflection.camelize(methodName, true)}` : inflection.camelize(methodName, true);
67
+ const defaultPath = modelName !== void 0 ? `${inflection.camelize((modelName ?? "").replace(/Model$/, "").replace(/Frame$/, ""), true)}.${inflection.camelize(methodName, true)}` : inflection.camelize(methodName, true);
70
68
  toolDefinitions.push({
71
69
  name: name ?? defaultPath,
72
70
  description,
@@ -79,7 +77,7 @@ function tools(options) {
79
77
  });
80
78
  };
81
79
  }
82
-
83
80
  //#endregion
84
81
  export { BaseAgentClass, tools };
85
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQuanMiLCJuYW1lcyI6WyJ0b29sRGVmaW5pdGlvbnM6IFJlZ2lzdGVyZWRUb29sRGVmaW5pdGlvbltdIiwiYWdlbnROYW1lOiBzdHJpbmciXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYWkvYWdlbnRzL2FnZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jTG9jYWxTdG9yYWdlIH0gZnJvbSBcImFzeW5jX2hvb2tzXCI7XG5cbmltcG9ydCB7IHR5cGUgVG9vbCwgdHlwZSBUb29sRXhlY3V0aW9uT3B0aW9ucyB9IGZyb20gXCJAYWktc2RrL3Byb3ZpZGVyLXV0aWxzXCI7XG5pbXBvcnQgeyB0b29sIH0gZnJvbSBcIkBhaS1zZGsvcHJvdmlkZXItdXRpbHNcIjtcbmltcG9ydCB7IGdldExvZ2dlciB9IGZyb20gXCJAbG9ndGFwZS9sb2d0YXBlXCI7XG5pbXBvcnQgeyB0eXBlIExvZ2dlciB9IGZyb20gXCJAbG9ndGFwZS9sb2d0YXBlXCI7XG5pbXBvcnQgeyB0eXBlIEFnZW50LCB0eXBlIFRvb2xTZXQgfSBmcm9tIFwiYWlcIjtcbmltcG9ydCB7IFRvb2xMb29wQWdlbnQgfSBmcm9tIFwiYWlcIjtcbmltcG9ydCBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCI7XG5cbmltcG9ydCB7IGNvbnZlcnREb21haW5Ub0NhdGVnb3J5IH0gZnJvbSBcIi4uLy4uL2xvZ2dlci9jYXRlZ29yeVwiO1xuaW1wb3J0IHsgZ2V0TW9kZWxOYW1lRnJvbUNsYXNzTmFtZSB9IGZyb20gXCIuLi8uLi91dGlscy9jbGFzcy1uYW1lXCI7XG5pbXBvcnQge1xuICB0eXBlIEFnZW50Q29uZmlnLFxuICB0eXBlIFJlZ2lzdGVyZWRUb29sRGVmaW5pdGlvbixcbiAgdHlwZSBUb29sRGVjb3JhdG9yT3B0aW9ucyxcbn0gZnJvbSBcIi4vdHlwZXNcIjtcblxuY29uc3QgdG9vbERlZmluaXRpb25zOiBSZWdpc3RlcmVkVG9vbERlZmluaXRpb25bXSA9IFtdO1xuXG4vLyBUT0RPKEhhemUsIDI1MTIwNSk6IO2FjeyKpO2KuOqwgCDslYTri4wgc3RydWN0dXJlZCBvdXRwdXTsnbwg6rK97Jqw7JeQIOuMgO2VnCDsp4Dsm5DsnbQg7ZWE7JqUXG5leHBvcnQgY2xhc3MgQmFzZUFnZW50Q2xhc3M8VFN0b3JlPiB7XG4gIHByb3RlY3RlZCByZWFkb25seSBsb2dnZXI6IExvZ2dlcjtcblxuICBwcml2YXRlIF9hbHMgPSBuZXcgQXN5bmNMb2NhbFN0b3JhZ2U8VFN0b3JlPigpO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBhZ2VudE5hbWU6IHN0cmluZyA9IHRoaXMuY29uc3RydWN0b3IubmFtZSkge1xuICAgIHRoaXMubG9nZ2VyID0gZ2V0TG9nZ2VyKGNvbnZlcnREb21haW5Ub0NhdGVnb3J5KHRoaXMuYWdlbnROYW1lLCBcImFnZW50XCIpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3RvcmUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Fscy5nZXRTdG9yZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCB0b29sU2V0KCkge1xuICAgIHJldHVybiB0b29sRGVmaW5pdGlvbnNcbiAgICAgIC5maWx0ZXIoKGRlZikgPT4gZGVmLmZyb20gPT09IHRoaXMuY29uc3RydWN0b3IubmFtZSlcbiAgICAgIC5yZWR1Y2U8UmVjb3JkPHN0cmluZywgVG9vbD4+KChhY2MsIGRlZikgPT4ge1xuICAgICAgICBhY2NbZGVmLm5hbWVdID0gdG9vbCh7XG4gICAgICAgICAgZGVzY3JpcHRpb246IGRlZi5kZXNjcmlwdGlvbixcbiAgICAgICAgICBpbnB1dFNjaGVtYTogZGVmLnNjaGVtYS5pbnB1dCxcbiAgICAgICAgICBvdXRwdXRTY2hlbWE6IGRlZi5zY2hlbWEub3V0cHV0LFxuICAgICAgICAgIG5lZWRzQXBwcm92YWw6IGRlZi5uZWVkc0FwcHJvdmFsID8/IGZhbHNlLFxuICAgICAgICAgIHRvTW9kZWxPdXRwdXQ6IGRlZi50b01vZGVsT3V0cHV0LFxuICAgICAgICAgIHByb3ZpZGVyT3B0aW9uczogZGVmLnByb3ZpZGVyT3B0aW9ucyxcbiAgICAgICAgICBleGVjdXRlOiAoaW5wdXQ6IHVua25vd24sIG9wdGlvbnM6IFRvb2xFeGVjdXRpb25PcHRpb25zKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBib3VuZCA9IGRlZi5tZXRob2QuYmluZCh0aGlzKTtcbiAgICAgICAgICAgIHJldHVybiBib3VuZC5sZW5ndGggPj0gMiA/IGJvdW5kKGlucHV0LCBvcHRpb25zKSA6IGJvdW5kKGlucHV0KTtcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIHt9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdG9vbHMoKTogVG9vbFNldCB7XG4gICAgcmV0dXJuIHRoaXMudG9vbFNldDtcbiAgfVxuXG4gIHB1YmxpYyB1c2U8VFJldHVybj4oXG4gICAgY29uZmlnOiBBZ2VudENvbmZpZyxcbiAgICBpbml0aWFsU3RhdHVzOiBUU3RvcmUsXG4gICAgY2FsbGJhY2s6IChhZ2VudDogQWdlbnQ8bmV2ZXIsIFRvb2xTZXQ+KSA9PiBQcm9taXNlPFRSZXR1cm4+LFxuICApIHtcbiAgICBjb25zdCBhZ2VudCA9IG5ldyBUb29sTG9vcEFnZW50KHtcbiAgICAgIC4uLmNvbmZpZyxcbiAgICAgIHRvb2xzOiB0aGlzLnRvb2xzLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuX2Fscy5ydW4oaW5pdGlhbFN0YXR1cywgKCkgPT4gY2FsbGJhY2soYWdlbnQpKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9vbHM8SU5QVVQsIE9VVFBVVCA9IHVua25vd24+KG9wdGlvbnM6IFRvb2xEZWNvcmF0b3JPcHRpb25zPElOUFVULCBPVVRQVVQ+KSB7XG4gIGNvbnN0IHsgbmFtZSwgZGVzY3JpcHRpb24sIHNjaGVtYSwgbmVlZHNBcHByb3ZhbCwgdG9Nb2RlbE91dHB1dCwgcHJvdmlkZXJPcHRpb25zIH0gPSBvcHRpb25zO1xuICByZXR1cm4gKHRhcmdldDogQmFzZUFnZW50Q2xhc3M8dW5rbm93bj4sIHByb3BlcnR5S2V5OiBzdHJpbmcsIGRlc2NyaXB0b3I6IFByb3BlcnR5RGVzY3JpcHRvcikgPT4ge1xuICAgIGlmICghKHRhcmdldCBpbnN0YW5jZW9mIEJhc2VBZ2VudENsYXNzKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGFyZ2V0IG11c3QgYmUgYSBzdWJjbGFzcyBvZiBCYXNlQWdlbnRDbGFzc1wiKTtcbiAgICB9XG5cbiAgICBjb25zdCBtb2RlbE5hbWUgPSBnZXRNb2RlbE5hbWVGcm9tQ2xhc3NOYW1lKHRhcmdldC5jb25zdHJ1Y3Rvci5uYW1lKTtcbiAgICBjb25zdCBtZXRob2ROYW1lID0gcHJvcGVydHlLZXk7XG5cbiAgICBjb25zdCBvcmlnaW5hbE1ldGhvZCA9IGRlc2NyaXB0b3IudmFsdWU7XG4gICAgY29uc3QgbWV0aG9kID0gYXN5bmMgZnVuY3Rpb24gKHRoaXM6IEJhc2VBZ2VudENsYXNzPHVua25vd24+LCAuLi5hcmdzOiB1bmtub3duW10pIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFwidG9vbHM6IHttb2RlbH0ue21ldGhvZH0gd2l0aCBhcmdzOiB7YXJnc31cIiwge1xuICAgICAgICBtb2RlbDogbW9kZWxOYW1lLFxuICAgICAgICBtZXRob2Q6IG1ldGhvZE5hbWUsXG4gICAgICAgIGFyZ3MsXG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIG9yaWdpbmFsTWV0aG9kLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgIH07XG4gICAgZGVzY3JpcHRvci52YWx1ZSA9IG1ldGhvZDtcblxuICAgIGNvbnN0IGRlZmF1bHRQYXRoID1cbiAgICAgIG1vZGVsTmFtZSAhPT0gdW5kZWZpbmVkXG4gICAgICAgID8gYCR7aW5mbGVjdGlvbi5jYW1lbGl6ZShcbiAgICAgICAgICAgIChtb2RlbE5hbWUgPz8gXCJcIikucmVwbGFjZSgvTW9kZWwkLywgXCJcIikucmVwbGFjZSgvRnJhbWUkLywgXCJcIiksXG4gICAgICAgICAgICB0cnVlLFxuICAgICAgICAgICl9LiR7aW5mbGVjdGlvbi5jYW1lbGl6ZShtZXRob2ROYW1lLCB0cnVlKX1gXG4gICAgICAgIDogaW5mbGVjdGlvbi5jYW1lbGl6ZShtZXRob2ROYW1lLCB0cnVlKTtcblxuICAgIHRvb2xEZWZpbml0aW9ucy5wdXNoKHtcbiAgICAgIG5hbWU6IG5hbWUgPz8gZGVmYXVsdFBhdGgsXG4gICAgICBkZXNjcmlwdGlvbixcbiAgICAgIHNjaGVtYSxcbiAgICAgIG5lZWRzQXBwcm92YWwsXG4gICAgICB0b01vZGVsT3V0cHV0LFxuICAgICAgcHJvdmlkZXJPcHRpb25zLFxuICAgICAgbWV0aG9kLFxuICAgICAgZnJvbTogdGFyZ2V0LmNvbnN0cnVjdG9yLm5hbWUsXG4gICAgfSk7XG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztlQVVnRTtpQkFDRztBQU9uRSxNQUFNQSxrQkFBOEMsRUFBRTtBQUd0RCxJQUFhLGlCQUFiLE1BQW9DO0NBQ2xDLEFBQW1CO0NBRW5CLEFBQVEsT0FBTyxJQUFJLG1CQUEyQjtDQUU5QyxZQUFZLEFBQWdCQyxZQUFvQixLQUFLLFlBQVksTUFBTTtFQUEzQztBQUMxQixPQUFLLFNBQVMsVUFBVSx3QkFBd0IsS0FBSyxXQUFXLFFBQVEsQ0FBQzs7Q0FHM0UsSUFBVyxRQUFRO0FBQ2pCLFNBQU8sS0FBSyxLQUFLLFVBQVU7O0NBRzdCLElBQWMsVUFBVTtBQUN0QixTQUFPLGdCQUNKLFFBQVEsUUFBUSxJQUFJLFNBQVMsS0FBSyxZQUFZLEtBQUssQ0FDbkQsUUFBOEIsS0FBSyxRQUFRO0FBQzFDLE9BQUksSUFBSSxRQUFRLEtBQUs7SUFDbkIsYUFBYSxJQUFJO0lBQ2pCLGFBQWEsSUFBSSxPQUFPO0lBQ3hCLGNBQWMsSUFBSSxPQUFPO0lBQ3pCLGVBQWUsSUFBSSxpQkFBaUI7SUFDcEMsZUFBZSxJQUFJO0lBQ25CLGlCQUFpQixJQUFJO0lBQ3JCLFVBQVUsT0FBZ0IsWUFBa0M7S0FDMUQsTUFBTSxRQUFRLElBQUksT0FBTyxLQUFLLEtBQUs7QUFDbkMsWUFBTyxNQUFNLFVBQVUsSUFBSSxNQUFNLE9BQU8sUUFBUSxHQUFHLE1BQU0sTUFBTTs7SUFFbEUsQ0FBQztBQUNGLFVBQU87S0FDTixFQUFFLENBQUM7O0NBR1YsSUFBVyxRQUFpQjtBQUMxQixTQUFPLEtBQUs7O0NBR2QsQUFBTyxJQUNMLFFBQ0EsZUFDQSxVQUNBO0VBQ0EsTUFBTSxRQUFRLElBQUksY0FBYztHQUM5QixHQUFHO0dBQ0gsT0FBTyxLQUFLO0dBQ2IsQ0FBQztBQUVGLFNBQU8sS0FBSyxLQUFLLElBQUkscUJBQXFCLFNBQVMsTUFBTSxDQUFDOzs7QUFJOUQsU0FBZ0IsTUFBK0IsU0FBOEM7Q0FDM0YsTUFBTSxFQUFFLE1BQU0sYUFBYSxRQUFRLGVBQWUsZUFBZSxvQkFBb0I7QUFDckYsU0FBUSxRQUFpQyxhQUFxQixlQUFtQztBQUMvRixNQUFJLEVBQUUsa0JBQWtCLGlCQUFpQjtBQUN2QyxTQUFNLElBQUksTUFBTSw4Q0FBOEM7O0VBR2hFLE1BQU0sWUFBWSwwQkFBMEIsT0FBTyxZQUFZLEtBQUs7RUFDcEUsTUFBTSxhQUFhO0VBRW5CLE1BQU0saUJBQWlCLFdBQVc7RUFDbEMsTUFBTSxTQUFTLGVBQStDLEdBQUcsTUFBaUI7QUFDaEYsUUFBSyxPQUFPLE1BQU0sNkNBQTZDO0lBQzdELE9BQU87SUFDUCxRQUFRO0lBQ1I7SUFDRCxDQUFDO0FBRUYsVUFBTyxlQUFlLE1BQU0sTUFBTSxLQUFLOztBQUV6QyxhQUFXLFFBQVE7RUFFbkIsTUFBTSxjQUNKLGNBQWMsWUFDVixHQUFHLFdBQVcsVUFDWCxhQUFhLElBQUksUUFBUSxVQUFVLEdBQUcsQ0FBQyxRQUFRLFVBQVUsR0FBRyxFQUM3RCxLQUNELENBQUMsR0FBRyxXQUFXLFNBQVMsWUFBWSxLQUFLLEtBQzFDLFdBQVcsU0FBUyxZQUFZLEtBQUs7QUFFM0Msa0JBQWdCLEtBQUs7R0FDbkIsTUFBTSxRQUFRO0dBQ2Q7R0FDQTtHQUNBO0dBQ0E7R0FDQTtHQUNBO0dBQ0EsTUFBTSxPQUFPLFlBQVk7R0FDMUIsQ0FBQyJ9
82
+
83
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FpL2FnZW50cy9hZ2VudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY0xvY2FsU3RvcmFnZSB9IGZyb20gXCJhc3luY19ob29rc1wiO1xuXG5pbXBvcnQgeyB0eXBlIFRvb2wsIHR5cGUgVG9vbEV4ZWN1dGlvbk9wdGlvbnMgfSBmcm9tIFwiQGFpLXNkay9wcm92aWRlci11dGlsc1wiO1xuaW1wb3J0IHsgdG9vbCB9IGZyb20gXCJAYWktc2RrL3Byb3ZpZGVyLXV0aWxzXCI7XG5pbXBvcnQgeyBnZXRMb2dnZXIgfSBmcm9tIFwiQGxvZ3RhcGUvbG9ndGFwZVwiO1xuaW1wb3J0IHsgdHlwZSBMb2dnZXIgfSBmcm9tIFwiQGxvZ3RhcGUvbG9ndGFwZVwiO1xuaW1wb3J0IHsgdHlwZSBBZ2VudCwgdHlwZSBUb29sU2V0IH0gZnJvbSBcImFpXCI7XG5pbXBvcnQgeyBUb29sTG9vcEFnZW50IH0gZnJvbSBcImFpXCI7XG5pbXBvcnQgaW5mbGVjdGlvbiBmcm9tIFwiaW5mbGVjdGlvblwiO1xuXG5pbXBvcnQgeyBjb252ZXJ0RG9tYWluVG9DYXRlZ29yeSB9IGZyb20gXCIuLi8uLi9sb2dnZXIvY2F0ZWdvcnlcIjtcbmltcG9ydCB7IGdldE1vZGVsTmFtZUZyb21DbGFzc05hbWUgfSBmcm9tIFwiLi4vLi4vdXRpbHMvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHtcbiAgdHlwZSBBZ2VudENvbmZpZyxcbiAgdHlwZSBSZWdpc3RlcmVkVG9vbERlZmluaXRpb24sXG4gIHR5cGUgVG9vbERlY29yYXRvck9wdGlvbnMsXG59IGZyb20gXCIuL3R5cGVzXCI7XG5cbmNvbnN0IHRvb2xEZWZpbml0aW9uczogUmVnaXN0ZXJlZFRvb2xEZWZpbml0aW9uW10gPSBbXTtcblxuLy8gVE9ETyhIYXplLCAyNTEyMDUpOiDthY3siqTtirjqsIAg7JWE64uMIHN0cnVjdHVyZWQgb3V0cHV07J28IOqyveyasOyXkCDrjIDtlZwg7KeA7JuQ7J20IO2VhOyalFxuZXhwb3J0IGNsYXNzIEJhc2VBZ2VudENsYXNzPFRTdG9yZT4ge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbG9nZ2VyOiBMb2dnZXI7XG5cbiAgcHJpdmF0ZSBfYWxzID0gbmV3IEFzeW5jTG9jYWxTdG9yYWdlPFRTdG9yZT4oKTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgYWdlbnROYW1lOiBzdHJpbmcgPSB0aGlzLmNvbnN0cnVjdG9yLm5hbWUpIHtcbiAgICB0aGlzLmxvZ2dlciA9IGdldExvZ2dlcihjb252ZXJ0RG9tYWluVG9DYXRlZ29yeSh0aGlzLmFnZW50TmFtZSwgXCJhZ2VudFwiKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHN0b3JlKCkge1xuICAgIHJldHVybiB0aGlzLl9hbHMuZ2V0U3RvcmUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgdG9vbFNldCgpIHtcbiAgICByZXR1cm4gdG9vbERlZmluaXRpb25zXG4gICAgICAuZmlsdGVyKChkZWYpID0+IGRlZi5mcm9tID09PSB0aGlzLmNvbnN0cnVjdG9yLm5hbWUpXG4gICAgICAucmVkdWNlPFJlY29yZDxzdHJpbmcsIFRvb2w+PigoYWNjLCBkZWYpID0+IHtcbiAgICAgICAgYWNjW2RlZi5uYW1lXSA9IHRvb2woe1xuICAgICAgICAgIGRlc2NyaXB0aW9uOiBkZWYuZGVzY3JpcHRpb24sXG4gICAgICAgICAgaW5wdXRTY2hlbWE6IGRlZi5zY2hlbWEuaW5wdXQsXG4gICAgICAgICAgb3V0cHV0U2NoZW1hOiBkZWYuc2NoZW1hLm91dHB1dCxcbiAgICAgICAgICBuZWVkc0FwcHJvdmFsOiBkZWYubmVlZHNBcHByb3ZhbCA/PyBmYWxzZSxcbiAgICAgICAgICB0b01vZGVsT3V0cHV0OiBkZWYudG9Nb2RlbE91dHB1dCxcbiAgICAgICAgICBwcm92aWRlck9wdGlvbnM6IGRlZi5wcm92aWRlck9wdGlvbnMsXG4gICAgICAgICAgZXhlY3V0ZTogKGlucHV0OiB1bmtub3duLCBvcHRpb25zOiBUb29sRXhlY3V0aW9uT3B0aW9ucykgPT4ge1xuICAgICAgICAgICAgY29uc3QgYm91bmQgPSBkZWYubWV0aG9kLmJpbmQodGhpcyk7XG4gICAgICAgICAgICByZXR1cm4gYm91bmQubGVuZ3RoID49IDIgPyBib3VuZChpbnB1dCwgb3B0aW9ucykgOiBib3VuZChpbnB1dCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LCB7fSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRvb2xzKCk6IFRvb2xTZXQge1xuICAgIHJldHVybiB0aGlzLnRvb2xTZXQ7XG4gIH1cblxuICBwdWJsaWMgdXNlPFRSZXR1cm4+KFxuICAgIGNvbmZpZzogQWdlbnRDb25maWcsXG4gICAgaW5pdGlhbFN0YXR1czogVFN0b3JlLFxuICAgIGNhbGxiYWNrOiAoYWdlbnQ6IEFnZW50PG5ldmVyLCBUb29sU2V0PikgPT4gUHJvbWlzZTxUUmV0dXJuPixcbiAgKSB7XG4gICAgY29uc3QgYWdlbnQgPSBuZXcgVG9vbExvb3BBZ2VudCh7XG4gICAgICAuLi5jb25maWcsXG4gICAgICB0b29sczogdGhpcy50b29scyxcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzLl9hbHMucnVuKGluaXRpYWxTdGF0dXMsICgpID0+IGNhbGxiYWNrKGFnZW50KSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvb2xzPElOUFVULCBPVVRQVVQgPSB1bmtub3duPihvcHRpb25zOiBUb29sRGVjb3JhdG9yT3B0aW9uczxJTlBVVCwgT1VUUFVUPikge1xuICBjb25zdCB7IG5hbWUsIGRlc2NyaXB0aW9uLCBzY2hlbWEsIG5lZWRzQXBwcm92YWwsIHRvTW9kZWxPdXRwdXQsIHByb3ZpZGVyT3B0aW9ucyB9ID0gb3B0aW9ucztcbiAgcmV0dXJuICh0YXJnZXQ6IEJhc2VBZ2VudENsYXNzPHVua25vd24+LCBwcm9wZXJ0eUtleTogc3RyaW5nLCBkZXNjcmlwdG9yOiBQcm9wZXJ0eURlc2NyaXB0b3IpID0+IHtcbiAgICBpZiAoISh0YXJnZXQgaW5zdGFuY2VvZiBCYXNlQWdlbnRDbGFzcykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIlRhcmdldCBtdXN0IGJlIGEgc3ViY2xhc3Mgb2YgQmFzZUFnZW50Q2xhc3NcIik7XG4gICAgfVxuXG4gICAgY29uc3QgbW9kZWxOYW1lID0gZ2V0TW9kZWxOYW1lRnJvbUNsYXNzTmFtZSh0YXJnZXQuY29uc3RydWN0b3IubmFtZSk7XG4gICAgY29uc3QgbWV0aG9kTmFtZSA9IHByb3BlcnR5S2V5O1xuXG4gICAgY29uc3Qgb3JpZ2luYWxNZXRob2QgPSBkZXNjcmlwdG9yLnZhbHVlO1xuICAgIGNvbnN0IG1ldGhvZCA9IGFzeW5jIGZ1bmN0aW9uICh0aGlzOiBCYXNlQWdlbnRDbGFzczx1bmtub3duPiwgLi4uYXJnczogdW5rbm93bltdKSB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcInRvb2xzOiB7bW9kZWx9LnttZXRob2R9IHdpdGggYXJnczoge2FyZ3N9XCIsIHtcbiAgICAgICAgbW9kZWw6IG1vZGVsTmFtZSxcbiAgICAgICAgbWV0aG9kOiBtZXRob2ROYW1lLFxuICAgICAgICBhcmdzLFxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBvcmlnaW5hbE1ldGhvZC5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICB9O1xuICAgIGRlc2NyaXB0b3IudmFsdWUgPSBtZXRob2Q7XG5cbiAgICBjb25zdCBkZWZhdWx0UGF0aCA9XG4gICAgICBtb2RlbE5hbWUgIT09IHVuZGVmaW5lZFxuICAgICAgICA/IGAke2luZmxlY3Rpb24uY2FtZWxpemUoXG4gICAgICAgICAgICAobW9kZWxOYW1lID8/IFwiXCIpLnJlcGxhY2UoL01vZGVsJC8sIFwiXCIpLnJlcGxhY2UoL0ZyYW1lJC8sIFwiXCIpLFxuICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICApfS4ke2luZmxlY3Rpb24uY2FtZWxpemUobWV0aG9kTmFtZSwgdHJ1ZSl9YFxuICAgICAgICA6IGluZmxlY3Rpb24uY2FtZWxpemUobWV0aG9kTmFtZSwgdHJ1ZSk7XG5cbiAgICB0b29sRGVmaW5pdGlvbnMucHVzaCh7XG4gICAgICBuYW1lOiBuYW1lID8/IGRlZmF1bHRQYXRoLFxuICAgICAgZGVzY3JpcHRpb24sXG4gICAgICBzY2hlbWEsXG4gICAgICBuZWVkc0FwcHJvdmFsLFxuICAgICAgdG9Nb2RlbE91dHB1dCxcbiAgICAgIHByb3ZpZGVyT3B0aW9ucyxcbiAgICAgIG1ldGhvZCxcbiAgICAgIGZyb206IHRhcmdldC5jb25zdHJ1Y3Rvci5uYW1lLFxuICAgIH0pO1xuICB9O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztjQVUrRDtnQkFDRztBQU9sRSxNQUFNLGtCQUE4QyxDQUFDO0FBR3JELElBQWEsaUJBQWIsTUFBb0M7Q0FLTjtDQUo1QjtDQUVBLE9BQWUsSUFBSSxrQkFBMEI7Q0FFN0MsWUFBWSxZQUFvQyxLQUFLLFlBQVksTUFBTTtFQUEzQyxLQUFBLFlBQUE7RUFDMUIsS0FBSyxTQUFTLFVBQVUsd0JBQXdCLEtBQUssV0FBVyxPQUFPLENBQUM7Q0FDMUU7Q0FFQSxJQUFXLFFBQVE7RUFDakIsT0FBTyxLQUFLLEtBQUssU0FBUztDQUM1QjtDQUVBLElBQWMsVUFBVTtFQUN0QixPQUFPLGdCQUNKLFFBQVEsUUFBUSxJQUFJLFNBQVMsS0FBSyxZQUFZLElBQUksQ0FBQyxDQUNuRCxRQUE4QixLQUFLLFFBQVE7R0FDMUMsSUFBSSxJQUFJLFFBQVEsS0FBSztJQUNuQixhQUFhLElBQUk7SUFDakIsYUFBYSxJQUFJLE9BQU87SUFDeEIsY0FBYyxJQUFJLE9BQU87SUFDekIsZUFBZSxJQUFJLGlCQUFpQjtJQUNwQyxlQUFlLElBQUk7SUFDbkIsaUJBQWlCLElBQUk7SUFDckIsVUFBVSxPQUFnQixZQUFrQztLQUMxRCxNQUFNLFFBQVEsSUFBSSxPQUFPLEtBQUssSUFBSTtLQUNsQyxPQUFPLE1BQU0sVUFBVSxJQUFJLE1BQU0sT0FBTyxPQUFPLElBQUksTUFBTSxLQUFLO0lBQ2hFO0dBQ0YsQ0FBQztHQUNELE9BQU87RUFDVCxHQUFHLENBQUMsQ0FBQztDQUNUO0NBRUEsSUFBVyxRQUFpQjtFQUMxQixPQUFPLEtBQUs7Q0FDZDtDQUVBLElBQ0UsUUFDQSxlQUNBLFVBQ0E7RUFDQSxNQUFNLFFBQVEsSUFBSSxjQUFjO0dBQzlCLEdBQUc7R0FDSCxPQUFPLEtBQUs7RUFDZCxDQUFDO0VBRUQsT0FBTyxLQUFLLEtBQUssSUFBSSxxQkFBcUIsU0FBUyxLQUFLLENBQUM7Q0FDM0Q7QUFDRjtBQUVBLFNBQWdCLE1BQStCLFNBQThDO0NBQzNGLE1BQU0sRUFBRSxNQUFNLGFBQWEsUUFBUSxlQUFlLGVBQWUsb0JBQW9CO0NBQ3JGLFFBQVEsUUFBaUMsYUFBcUIsZUFBbUM7RUFDL0YsSUFBSSxFQUFFLGtCQUFrQixpQkFDdEIsTUFBTSxJQUFJLE1BQU0sNkNBQTZDO0VBRy9ELE1BQU0sWUFBWSwwQkFBMEIsT0FBTyxZQUFZLElBQUk7RUFDbkUsTUFBTSxhQUFhO0VBRW5CLE1BQU0saUJBQWlCLFdBQVc7RUFDbEMsTUFBTSxTQUFTLGVBQStDLEdBQUcsTUFBaUI7R0FDaEYsS0FBSyxPQUFPLE1BQU0sNkNBQTZDO0lBQzdELE9BQU87SUFDUCxRQUFRO0lBQ1I7R0FDRixDQUFDO0dBRUQsT0FBTyxlQUFlLE1BQU0sTUFBTSxJQUFJO0VBQ3hDO0VBQ0EsV0FBVyxRQUFRO0VBRW5CLE1BQU0sY0FDSixjQUFjLFNBQ1YsR0FBRyxXQUFXLFVBQ1gsYUFBYSxHQUFBLENBQUksUUFBUSxVQUFVLEVBQUUsQ0FBQyxDQUFDLFFBQVEsVUFBVSxFQUFFLEdBQzVELElBQ0YsRUFBRSxHQUFHLFdBQVcsU0FBUyxZQUFZLElBQUksTUFDekMsV0FBVyxTQUFTLFlBQVksSUFBSTtFQUUxQyxnQkFBZ0IsS0FBSztHQUNuQixNQUFNLFFBQVE7R0FDZDtHQUNBO0dBQ0E7R0FDQTtHQUNBO0dBQ0E7R0FDQSxNQUFNLE9BQU8sWUFBWTtFQUMzQixDQUFDO0NBQ0g7QUFDRiJ9
@@ -1,4 +1,3 @@
1
1
  import { BaseAgentClass, tools } from "./agent.js";
2
2
  import "./types.js";
3
-
4
- export { BaseAgentClass, tools };
3
+ export { BaseAgentClass, tools };
@@ -1 +1 @@
1
- export { };
1
+ export {};
package/dist/ai/index.js CHANGED
@@ -1,4 +1,3 @@
1
1
  import { BaseAgentClass, tools } from "./agents/agent.js";
2
2
  import "./agents/index.js";
3
-
4
- export { BaseAgentClass, tools };
3
+ export { BaseAgentClass, tools };
@@ -1,6 +1,5 @@
1
1
  import { lazySchema, zodSchema } from "@ai-sdk/provider-utils";
2
2
  import { z as z$1 } from "zod";
3
-
4
3
  //#region src/ai/providers/rtzr/api.ts
5
4
  const rtzrAuthResponseSchema = z$1.object({
6
5
  access_token: z$1.string(),
@@ -26,7 +25,7 @@ const rtzrTranscriptionResultResponseSchema = lazySchema(() => zodSchema(z$1.obj
26
25
  lang: z$1.string().optional()
27
26
  })) }).nullish()
28
27
  })));
29
-
30
28
  //#endregion
31
29
  export { rtzrAuthResponseSchema, rtzrTranscriptionResponseSchema, rtzrTranscriptionResultResponseSchema };
32
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwibmFtZXMiOlsieiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9haS9wcm92aWRlcnMvcnR6ci9hcGkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbGF6eVNjaGVtYSwgem9kU2NoZW1hIH0gZnJvbSBcIkBhaS1zZGsvcHJvdmlkZXItdXRpbHNcIjtcbmltcG9ydCB7IHogfSBmcm9tIFwiem9kXCI7XG5cbmV4cG9ydCBjb25zdCBydHpyQXV0aFJlc3BvbnNlU2NoZW1hID0gei5vYmplY3Qoe1xuICBhY2Nlc3NfdG9rZW46IHouc3RyaW5nKCksXG4gIGV4cGlyZV9hdDogei5udW1iZXIoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgcnR6clRyYW5zY3JpcHRpb25SZXNwb25zZVNjaGVtYSA9IGxhenlTY2hlbWEoKCkgPT5cbiAgem9kU2NoZW1hKFxuICAgIHoub2JqZWN0KHtcbiAgICAgIGlkOiB6LnN0cmluZygpLFxuICAgIH0pLFxuICApLFxuKTtcblxuZXhwb3J0IGNvbnN0IHJ0enJUcmFuc2NyaXB0aW9uUmVzdWx0UmVzcG9uc2VTY2hlbWEgPSBsYXp5U2NoZW1hKCgpID0+XG4gIHpvZFNjaGVtYShcbiAgICB6Lm9iamVjdCh7XG4gICAgICBpZDogei5zdHJpbmcoKSxcbiAgICAgIHN0YXR1czogei5lbnVtKFtcInRyYW5zY3JpYmluZ1wiLCBcImNvbXBsZXRlZFwiLCBcImZhaWxlZFwiXSksXG4gICAgICBlcnJvcjogelxuICAgICAgICAub2JqZWN0KHtcbiAgICAgICAgICBjb2RlOiB6LnVuaW9uKFt6LnN0cmluZygpLCB6Lm51bWJlcigpXSkubnVsbGlzaCgpLFxuICAgICAgICAgIG1lc3NhZ2U6IHouc3RyaW5nKCkubnVsbGlzaCgpLFxuICAgICAgICB9KVxuICAgICAgICAubnVsbGlzaCgpLFxuICAgICAgcmVzdWx0czogelxuICAgICAgICAub2JqZWN0KHtcbiAgICAgICAgICB1dHRlcmFuY2VzOiB6LmFycmF5KFxuICAgICAgICAgICAgei5vYmplY3Qoe1xuICAgICAgICAgICAgICBzdGFydF9hdDogei5udW1iZXIoKSxcbiAgICAgICAgICAgICAgZHVyYXRpb246IHoubnVtYmVyKCksXG4gICAgICAgICAgICAgIG1zZzogei5zdHJpbmcoKSxcbiAgICAgICAgICAgICAgc3BrOiB6Lm51bWJlcigpLFxuICAgICAgICAgICAgICBsYW5nOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApLFxuICAgICAgICB9KVxuICAgICAgICAubnVsbGlzaCgpLFxuICAgIH0pLFxuICApLFxuKTtcbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUdBLE1BQWEseUJBQXlCQSxJQUFFLE9BQU87Q0FDN0MsY0FBY0EsSUFBRSxRQUFRO0NBQ3hCLFdBQVdBLElBQUUsUUFBUTtDQUN0QixDQUFDO0FBRUYsTUFBYSxrQ0FBa0MsaUJBQzdDLFVBQ0VBLElBQUUsT0FBTyxFQUNQLElBQUlBLElBQUUsUUFBUSxFQUNmLENBQUMsQ0FDSCxDQUNGO0FBRUQsTUFBYSx3Q0FBd0MsaUJBQ25ELFVBQ0VBLElBQUUsT0FBTztDQUNQLElBQUlBLElBQUUsUUFBUTtDQUNkLFFBQVFBLElBQUUsS0FBSztFQUFDO0VBQWdCO0VBQWE7RUFBUyxDQUFDO0NBQ3ZELE9BQU9BLElBQ0osT0FBTztFQUNOLE1BQU1BLElBQUUsTUFBTSxDQUFDQSxJQUFFLFFBQVEsRUFBRUEsSUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVM7RUFDakQsU0FBU0EsSUFBRSxRQUFRLENBQUMsU0FBUztFQUM5QixDQUFDLENBQ0QsU0FBUztDQUNaLFNBQVNBLElBQ04sT0FBTyxFQUNOLFlBQVlBLElBQUUsTUFDWkEsSUFBRSxPQUFPO0VBQ1AsVUFBVUEsSUFBRSxRQUFRO0VBQ3BCLFVBQVVBLElBQUUsUUFBUTtFQUNwQixLQUFLQSxJQUFFLFFBQVE7RUFDZixLQUFLQSxJQUFFLFFBQVE7RUFDZixNQUFNQSxJQUFFLFFBQVEsQ0FBQyxVQUFVO0VBQzVCLENBQUMsQ0FDSCxFQUNGLENBQUMsQ0FDRCxTQUFTO0NBQ2IsQ0FBQyxDQUNILENBQ0YifQ==
30
+
31
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwibmFtZXMiOlsieiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9haS9wcm92aWRlcnMvcnR6ci9hcGkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbGF6eVNjaGVtYSwgem9kU2NoZW1hIH0gZnJvbSBcIkBhaS1zZGsvcHJvdmlkZXItdXRpbHNcIjtcbmltcG9ydCB7IHogfSBmcm9tIFwiem9kXCI7XG5cbmV4cG9ydCBjb25zdCBydHpyQXV0aFJlc3BvbnNlU2NoZW1hID0gei5vYmplY3Qoe1xuICBhY2Nlc3NfdG9rZW46IHouc3RyaW5nKCksXG4gIGV4cGlyZV9hdDogei5udW1iZXIoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgcnR6clRyYW5zY3JpcHRpb25SZXNwb25zZVNjaGVtYSA9IGxhenlTY2hlbWEoKCkgPT5cbiAgem9kU2NoZW1hKFxuICAgIHoub2JqZWN0KHtcbiAgICAgIGlkOiB6LnN0cmluZygpLFxuICAgIH0pLFxuICApLFxuKTtcblxuZXhwb3J0IGNvbnN0IHJ0enJUcmFuc2NyaXB0aW9uUmVzdWx0UmVzcG9uc2VTY2hlbWEgPSBsYXp5U2NoZW1hKCgpID0+XG4gIHpvZFNjaGVtYShcbiAgICB6Lm9iamVjdCh7XG4gICAgICBpZDogei5zdHJpbmcoKSxcbiAgICAgIHN0YXR1czogei5lbnVtKFtcInRyYW5zY3JpYmluZ1wiLCBcImNvbXBsZXRlZFwiLCBcImZhaWxlZFwiXSksXG4gICAgICBlcnJvcjogelxuICAgICAgICAub2JqZWN0KHtcbiAgICAgICAgICBjb2RlOiB6LnVuaW9uKFt6LnN0cmluZygpLCB6Lm51bWJlcigpXSkubnVsbGlzaCgpLFxuICAgICAgICAgIG1lc3NhZ2U6IHouc3RyaW5nKCkubnVsbGlzaCgpLFxuICAgICAgICB9KVxuICAgICAgICAubnVsbGlzaCgpLFxuICAgICAgcmVzdWx0czogelxuICAgICAgICAub2JqZWN0KHtcbiAgICAgICAgICB1dHRlcmFuY2VzOiB6LmFycmF5KFxuICAgICAgICAgICAgei5vYmplY3Qoe1xuICAgICAgICAgICAgICBzdGFydF9hdDogei5udW1iZXIoKSxcbiAgICAgICAgICAgICAgZHVyYXRpb246IHoubnVtYmVyKCksXG4gICAgICAgICAgICAgIG1zZzogei5zdHJpbmcoKSxcbiAgICAgICAgICAgICAgc3BrOiB6Lm51bWJlcigpLFxuICAgICAgICAgICAgICBsYW5nOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApLFxuICAgICAgICB9KVxuICAgICAgICAubnVsbGlzaCgpLFxuICAgIH0pLFxuICApLFxuKTtcbiJdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsTUFBYSx5QkFBeUJBLElBQUUsT0FBTztDQUM3QyxjQUFjQSxJQUFFLE9BQU87Q0FDdkIsV0FBV0EsSUFBRSxPQUFPO0FBQ3RCLENBQUM7QUFFRCxNQUFhLGtDQUFrQyxpQkFDN0MsVUFDRUEsSUFBRSxPQUFPLEVBQ1AsSUFBSUEsSUFBRSxPQUFPLEVBQ2YsQ0FBQyxDQUNILENBQ0Y7QUFFQSxNQUFhLHdDQUF3QyxpQkFDbkQsVUFDRUEsSUFBRSxPQUFPO0NBQ1AsSUFBSUEsSUFBRSxPQUFPO0NBQ2IsUUFBUUEsSUFBRSxLQUFLO0VBQUM7RUFBZ0I7RUFBYTtDQUFRLENBQUM7Q0FDdEQsT0FBT0EsSUFDSixPQUFPO0VBQ04sTUFBTUEsSUFBRSxNQUFNLENBQUNBLElBQUUsT0FBTyxHQUFHQSxJQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRO0VBQ2hELFNBQVNBLElBQUUsT0FBTyxDQUFDLENBQUMsUUFBUTtDQUM5QixDQUFDLENBQUMsQ0FDRCxRQUFRO0NBQ1gsU0FBU0EsSUFDTixPQUFPLEVBQ04sWUFBWUEsSUFBRSxNQUNaQSxJQUFFLE9BQU87RUFDUCxVQUFVQSxJQUFFLE9BQU87RUFDbkIsVUFBVUEsSUFBRSxPQUFPO0VBQ25CLEtBQUtBLElBQUUsT0FBTztFQUNkLEtBQUtBLElBQUUsT0FBTztFQUNkLE1BQU1BLElBQUUsT0FBTyxDQUFDLENBQUMsU0FBUztDQUM1QixDQUFDLENBQ0gsRUFDRixDQUFDLENBQUMsQ0FDRCxRQUFRO0FBQ2IsQ0FBQyxDQUNILENBQ0YifQ==
@@ -1,7 +1,6 @@
1
1
  import { extractResponseHeaders, safeParseJSON, zodSchema } from "@ai-sdk/provider-utils";
2
2
  import { z as z$1 } from "zod";
3
3
  import { AISDKError, APICallError } from "@ai-sdk/provider";
4
-
5
4
  //#region src/ai/providers/rtzr/error.ts
6
5
  const rtzrFlatErrorDataSchema = z$1.object({
7
6
  code: z$1.union([z$1.string(), z$1.number()]).nullish(),
@@ -18,21 +17,15 @@ const rtzrNestedErrorDataSchema = z$1.object({ error: z$1.object({
18
17
  }) });
19
18
  const rtzrErrorDataSchema = z$1.union([rtzrFlatErrorDataSchema, rtzrNestedErrorDataSchema]);
20
19
  function isNullish(value) {
21
- return value === null || value === undefined;
20
+ return value === null || value === void 0;
22
21
  }
23
22
  function normalizeRtzrErrorData(data) {
24
- if ("error" in data) {
25
- return data.error;
26
- }
23
+ if ("error" in data) return data.error;
27
24
  return data;
28
25
  }
29
26
  function formatParam(param) {
30
- if (isNullish(param)) {
31
- return undefined;
32
- }
33
- if (typeof param === "string") {
34
- return param;
35
- }
27
+ if (isNullish(param)) return;
28
+ if (typeof param === "string") return param;
36
29
  try {
37
30
  return JSON.stringify(param);
38
31
  } catch {
@@ -43,30 +36,22 @@ function formatRtzrErrorData(data) {
43
36
  const error = normalizeRtzrErrorData(data);
44
37
  const param = formatParam(error.param);
45
38
  const parts = [
46
- isNullish(error.code) ? undefined : `code ${error.code}`,
47
- isNullish(error.type) ? undefined : `type ${error.type}`,
48
- isNullish(param) ? undefined : `param ${param}`
39
+ isNullish(error.code) ? void 0 : `code ${error.code}`,
40
+ isNullish(error.type) ? void 0 : `type ${error.type}`,
41
+ isNullish(param) ? void 0 : `param ${param}`
49
42
  ].filter((item) => !isNullish(item) && item.length > 0);
50
43
  const message = error.msg ?? error.message;
51
- if (!isNullish(message) && message.length > 0) {
52
- return [...parts, message].join(": ");
53
- }
54
- if (parts.length > 0) {
55
- return parts.join(": ");
56
- }
44
+ if (!isNullish(message) && message.length > 0) return [...parts, message].join(": ");
45
+ if (parts.length > 0) return parts.join(": ");
57
46
  return "unknown RTZR error";
58
47
  }
59
48
  async function formatRtzrErrorResponseBody(responseBody) {
60
- if (responseBody.trim().length === 0) {
61
- return undefined;
62
- }
49
+ if (responseBody.trim().length === 0) return;
63
50
  const parsedError = await safeParseJSON({
64
51
  text: responseBody,
65
52
  schema: zodSchema(rtzrErrorDataSchema)
66
53
  });
67
- if (!parsedError.success) {
68
- return undefined;
69
- }
54
+ if (!parsedError.success) return;
70
55
  return formatRtzrErrorData(parsedError.value);
71
56
  }
72
57
  const rtzrFailedResponseHandler = async ({ response, url, requestBodyValues }) => {
@@ -86,7 +71,7 @@ const rtzrFailedResponseHandler = async ({ response, url, requestBodyValues }) =
86
71
  statusCode: response.status,
87
72
  responseHeaders,
88
73
  responseBody,
89
- data: parsedError.success ? parsedError.value : undefined
74
+ data: parsedError.success ? parsedError.value : void 0
90
75
  })
91
76
  };
92
77
  };
@@ -99,7 +84,7 @@ var RtzrClientError = class extends AISDKError {
99
84
  });
100
85
  }
101
86
  };
102
-
103
87
  //#endregion
104
88
  export { RtzrClientError, formatRtzrErrorData, formatRtzrErrorResponseBody, rtzrErrorDataSchema, rtzrFailedResponseHandler };
105
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuanMiLCJuYW1lcyI6WyJ6IiwicnR6ckZhaWxlZFJlc3BvbnNlSGFuZGxlcjogUmVzcG9uc2VIYW5kbGVyPEFQSUNhbGxFcnJvcj4iXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYWkvcHJvdmlkZXJzL3J0enIvZXJyb3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQUlTREtFcnJvciwgQVBJQ2FsbEVycm9yIH0gZnJvbSBcIkBhaS1zZGsvcHJvdmlkZXJcIjtcbmltcG9ydCB7IGV4dHJhY3RSZXNwb25zZUhlYWRlcnMsIHNhZmVQYXJzZUpTT04sIHpvZFNjaGVtYSB9IGZyb20gXCJAYWktc2RrL3Byb3ZpZGVyLXV0aWxzXCI7XG5pbXBvcnQgeyB0eXBlIFJlc3BvbnNlSGFuZGxlciB9IGZyb20gXCJAYWktc2RrL3Byb3ZpZGVyLXV0aWxzXCI7XG5pbXBvcnQgeyB6IH0gZnJvbSBcInpvZFwiO1xuXG5jb25zdCBydHpyRmxhdEVycm9yRGF0YVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgY29kZTogei51bmlvbihbei5zdHJpbmcoKSwgei5udW1iZXIoKV0pLm51bGxpc2goKSxcbiAgbXNnOiB6LnN0cmluZygpLm51bGxpc2goKSxcbiAgdHlwZTogei5zdHJpbmcoKS5udWxsaXNoKCksXG4gIHBhcmFtOiB6LnVua25vd24oKS5udWxsaXNoKCksXG59KTtcblxuY29uc3QgcnR6ck5lc3RlZEVycm9yRGF0YVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgZXJyb3I6IHoub2JqZWN0KHtcbiAgICBtc2c6IHouc3RyaW5nKCkubnVsbGlzaCgpLFxuICAgIG1lc3NhZ2U6IHouc3RyaW5nKCkubnVsbGlzaCgpLFxuICAgIHR5cGU6IHouc3RyaW5nKCkubnVsbGlzaCgpLFxuICAgIHBhcmFtOiB6LnVua25vd24oKS5udWxsaXNoKCksXG4gICAgY29kZTogei51bmlvbihbei5zdHJpbmcoKSwgei5udW1iZXIoKV0pLm51bGxpc2goKSxcbiAgfSksXG59KTtcblxuLy8gUlRaUiByZXR1cm5zIGZsYXQgSFRUUCBlcnJvcnMsIGJ1dCBhc3luYyB0cmFuc2NyaXB0aW9uIGZhaWx1cmVzIHdyYXAgZGV0YWlscyBpbiBlcnJvci5cbmV4cG9ydCBjb25zdCBydHpyRXJyb3JEYXRhU2NoZW1hID0gei51bmlvbihbcnR6ckZsYXRFcnJvckRhdGFTY2hlbWEsIHJ0enJOZXN0ZWRFcnJvckRhdGFTY2hlbWFdKTtcblxuZXhwb3J0IHR5cGUgUnR6ckVycm9yRGF0YSA9IHouaW5mZXI8dHlwZW9mIHJ0enJFcnJvckRhdGFTY2hlbWE+O1xuXG50eXBlIE5vcm1hbGl6ZWRSdHpyRXJyb3IgPSB7XG4gIGNvZGU/OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsO1xuICBtZXNzYWdlPzogc3RyaW5nIHwgbnVsbDtcbiAgbXNnPzogc3RyaW5nIHwgbnVsbDtcbiAgdHlwZT86IHN0cmluZyB8IG51bGw7XG4gIHBhcmFtPzogdW5rbm93bjtcbn07XG5cbmZ1bmN0aW9uIGlzTnVsbGlzaCh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIG51bGwgfCB1bmRlZmluZWQge1xuICByZXR1cm4gdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplUnR6ckVycm9yRGF0YShkYXRhOiBSdHpyRXJyb3JEYXRhKTogTm9ybWFsaXplZFJ0enJFcnJvciB7XG4gIGlmIChcImVycm9yXCIgaW4gZGF0YSkge1xuICAgIHJldHVybiBkYXRhLmVycm9yO1xuICB9XG5cbiAgcmV0dXJuIGRhdGE7XG59XG5cbmZ1bmN0aW9uIGZvcm1hdFBhcmFtKHBhcmFtOiB1bmtub3duKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgaWYgKGlzTnVsbGlzaChwYXJhbSkpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBwYXJhbSA9PT0gXCJzdHJpbmdcIikge1xuICAgIHJldHVybiBwYXJhbTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHBhcmFtKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIFN0cmluZyhwYXJhbSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFJ0enJFcnJvckRhdGEoZGF0YTogUnR6ckVycm9yRGF0YSk6IHN0cmluZyB7XG4gIGNvbnN0IGVycm9yID0gbm9ybWFsaXplUnR6ckVycm9yRGF0YShkYXRhKTtcbiAgY29uc3QgcGFyYW0gPSBmb3JtYXRQYXJhbShlcnJvci5wYXJhbSk7XG4gIGNvbnN0IHBhcnRzID0gW1xuICAgIGlzTnVsbGlzaChlcnJvci5jb2RlKSA/IHVuZGVmaW5lZCA6IGBjb2RlICR7ZXJyb3IuY29kZX1gLFxuICAgIGlzTnVsbGlzaChlcnJvci50eXBlKSA/IHVuZGVmaW5lZCA6IGB0eXBlICR7ZXJyb3IudHlwZX1gLFxuICAgIGlzTnVsbGlzaChwYXJhbSkgPyB1bmRlZmluZWQgOiBgcGFyYW0gJHtwYXJhbX1gLFxuICBdLmZpbHRlcigoaXRlbSk6IGl0ZW0gaXMgc3RyaW5nID0+ICFpc051bGxpc2goaXRlbSkgJiYgaXRlbS5sZW5ndGggPiAwKTtcbiAgY29uc3QgbWVzc2FnZSA9IGVycm9yLm1zZyA/PyBlcnJvci5tZXNzYWdlO1xuXG4gIGlmICghaXNOdWxsaXNoKG1lc3NhZ2UpICYmIG1lc3NhZ2UubGVuZ3RoID4gMCkge1xuICAgIHJldHVybiBbLi4ucGFydHMsIG1lc3NhZ2VdLmpvaW4oXCI6IFwiKTtcbiAgfVxuXG4gIGlmIChwYXJ0cy5sZW5ndGggPiAwKSB7XG4gICAgcmV0dXJuIHBhcnRzLmpvaW4oXCI6IFwiKTtcbiAgfVxuXG4gIHJldHVybiBcInVua25vd24gUlRaUiBlcnJvclwiO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZm9ybWF0UnR6ckVycm9yUmVzcG9uc2VCb2R5KFxuICByZXNwb25zZUJvZHk6IHN0cmluZyxcbik6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gIGlmIChyZXNwb25zZUJvZHkudHJpbSgpLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBwYXJzZWRFcnJvciA9IGF3YWl0IHNhZmVQYXJzZUpTT04oe1xuICAgIHRleHQ6IHJlc3BvbnNlQm9keSxcbiAgICBzY2hlbWE6IHpvZFNjaGVtYShydHpyRXJyb3JEYXRhU2NoZW1hKSxcbiAgfSk7XG5cbiAgaWYgKCFwYXJzZWRFcnJvci5zdWNjZXNzKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHJldHVybiBmb3JtYXRSdHpyRXJyb3JEYXRhKHBhcnNlZEVycm9yLnZhbHVlKTtcbn1cblxuZXhwb3J0IGNvbnN0IHJ0enJGYWlsZWRSZXNwb25zZUhhbmRsZXI6IFJlc3BvbnNlSGFuZGxlcjxBUElDYWxsRXJyb3I+ID0gYXN5bmMgKHtcbiAgcmVzcG9uc2UsXG4gIHVybCxcbiAgcmVxdWVzdEJvZHlWYWx1ZXMsXG59KSA9PiB7XG4gIGNvbnN0IHJlc3BvbnNlQm9keSA9IGF3YWl0IHJlc3BvbnNlLnRleHQoKTtcbiAgY29uc3QgcmVzcG9uc2VIZWFkZXJzID0gZXh0cmFjdFJlc3BvbnNlSGVhZGVycyhyZXNwb25zZSk7XG4gIGNvbnN0IGRldGFpbCA9XG4gICAgKGF3YWl0IGZvcm1hdFJ0enJFcnJvclJlc3BvbnNlQm9keShyZXNwb25zZUJvZHkpKSA/P1xuICAgIHJlc3BvbnNlLnN0YXR1c1RleHQgPz9cbiAgICBcInVucGFyc2VhYmxlIFJUWlIgZXJyb3IgcmVzcG9uc2VcIjtcbiAgY29uc3QgcGFyc2VkRXJyb3IgPSBhd2FpdCBzYWZlUGFyc2VKU09OKHtcbiAgICB0ZXh0OiByZXNwb25zZUJvZHksXG4gICAgc2NoZW1hOiB6b2RTY2hlbWEocnR6ckVycm9yRGF0YVNjaGVtYSksXG4gIH0pO1xuXG4gIHJldHVybiB7XG4gICAgcmVzcG9uc2VIZWFkZXJzLFxuICAgIHZhbHVlOiBuZXcgQVBJQ2FsbEVycm9yKHtcbiAgICAgIG1lc3NhZ2U6IGBIVFRQICR7cmVzcG9uc2Uuc3RhdHVzfTogJHtkZXRhaWx9YCxcbiAgICAgIHVybCxcbiAgICAgIHJlcXVlc3RCb2R5VmFsdWVzLFxuICAgICAgc3RhdHVzQ29kZTogcmVzcG9uc2Uuc3RhdHVzLFxuICAgICAgcmVzcG9uc2VIZWFkZXJzLFxuICAgICAgcmVzcG9uc2VCb2R5LFxuICAgICAgZGF0YTogcGFyc2VkRXJyb3Iuc3VjY2VzcyA/IHBhcnNlZEVycm9yLnZhbHVlIDogdW5kZWZpbmVkLFxuICAgIH0pLFxuICB9O1xufTtcblxuZXhwb3J0IGNsYXNzIFJ0enJDbGllbnRFcnJvciBleHRlbmRzIEFJU0RLRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IHtcbiAgICAgIGNhdXNlPzogRXJyb3I7XG4gICAgfSxcbiAgKSB7XG4gICAgc3VwZXIoe1xuICAgICAgbmFtZTogXCJSdHpyQ2xpZW50RXJyb3JcIixcbiAgICAgIG1lc3NhZ2UsXG4gICAgICBjYXVzZTogb3B0aW9ucz8uY2F1c2UsXG4gICAgfSk7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFLQSxNQUFNLDBCQUEwQkEsSUFBRSxPQUFPO0NBQ3ZDLE1BQU1BLElBQUUsTUFBTSxDQUFDQSxJQUFFLFFBQVEsRUFBRUEsSUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVM7Q0FDakQsS0FBS0EsSUFBRSxRQUFRLENBQUMsU0FBUztDQUN6QixNQUFNQSxJQUFFLFFBQVEsQ0FBQyxTQUFTO0NBQzFCLE9BQU9BLElBQUUsU0FBUyxDQUFDLFNBQVM7Q0FDN0IsQ0FBQztBQUVGLE1BQU0sNEJBQTRCQSxJQUFFLE9BQU8sRUFDekMsT0FBT0EsSUFBRSxPQUFPO0NBQ2QsS0FBS0EsSUFBRSxRQUFRLENBQUMsU0FBUztDQUN6QixTQUFTQSxJQUFFLFFBQVEsQ0FBQyxTQUFTO0NBQzdCLE1BQU1BLElBQUUsUUFBUSxDQUFDLFNBQVM7Q0FDMUIsT0FBT0EsSUFBRSxTQUFTLENBQUMsU0FBUztDQUM1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
89
+
90
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuanMiLCJuYW1lcyI6WyJ6Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FpL3Byb3ZpZGVycy9ydHpyL2Vycm9yLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFJU0RLRXJyb3IsIEFQSUNhbGxFcnJvciB9IGZyb20gXCJAYWktc2RrL3Byb3ZpZGVyXCI7XG5pbXBvcnQgeyBleHRyYWN0UmVzcG9uc2VIZWFkZXJzLCBzYWZlUGFyc2VKU09OLCB6b2RTY2hlbWEgfSBmcm9tIFwiQGFpLXNkay9wcm92aWRlci11dGlsc1wiO1xuaW1wb3J0IHsgdHlwZSBSZXNwb25zZUhhbmRsZXIgfSBmcm9tIFwiQGFpLXNkay9wcm92aWRlci11dGlsc1wiO1xuaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIjtcblxuY29uc3QgcnR6ckZsYXRFcnJvckRhdGFTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIGNvZGU6IHoudW5pb24oW3ouc3RyaW5nKCksIHoubnVtYmVyKCldKS5udWxsaXNoKCksXG4gIG1zZzogei5zdHJpbmcoKS5udWxsaXNoKCksXG4gIHR5cGU6IHouc3RyaW5nKCkubnVsbGlzaCgpLFxuICBwYXJhbTogei51bmtub3duKCkubnVsbGlzaCgpLFxufSk7XG5cbmNvbnN0IHJ0enJOZXN0ZWRFcnJvckRhdGFTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIGVycm9yOiB6Lm9iamVjdCh7XG4gICAgbXNnOiB6LnN0cmluZygpLm51bGxpc2goKSxcbiAgICBtZXNzYWdlOiB6LnN0cmluZygpLm51bGxpc2goKSxcbiAgICB0eXBlOiB6LnN0cmluZygpLm51bGxpc2goKSxcbiAgICBwYXJhbTogei51bmtub3duKCkubnVsbGlzaCgpLFxuICAgIGNvZGU6IHoudW5pb24oW3ouc3RyaW5nKCksIHoubnVtYmVyKCldKS5udWxsaXNoKCksXG4gIH0pLFxufSk7XG5cbi8vIFJUWlIgcmV0dXJucyBmbGF0IEhUVFAgZXJyb3JzLCBidXQgYXN5bmMgdHJhbnNjcmlwdGlvbiBmYWlsdXJlcyB3cmFwIGRldGFpbHMgaW4gZXJyb3IuXG5leHBvcnQgY29uc3QgcnR6ckVycm9yRGF0YVNjaGVtYSA9IHoudW5pb24oW3J0enJGbGF0RXJyb3JEYXRhU2NoZW1hLCBydHpyTmVzdGVkRXJyb3JEYXRhU2NoZW1hXSk7XG5cbmV4cG9ydCB0eXBlIFJ0enJFcnJvckRhdGEgPSB6LmluZmVyPHR5cGVvZiBydHpyRXJyb3JEYXRhU2NoZW1hPjtcblxudHlwZSBOb3JtYWxpemVkUnR6ckVycm9yID0ge1xuICBjb2RlPzogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbDtcbiAgbWVzc2FnZT86IHN0cmluZyB8IG51bGw7XG4gIG1zZz86IHN0cmluZyB8IG51bGw7XG4gIHR5cGU/OiBzdHJpbmcgfCBudWxsO1xuICBwYXJhbT86IHVua25vd247XG59O1xuXG5mdW5jdGlvbiBpc051bGxpc2godmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBudWxsIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZVJ0enJFcnJvckRhdGEoZGF0YTogUnR6ckVycm9yRGF0YSk6IE5vcm1hbGl6ZWRSdHpyRXJyb3Ige1xuICBpZiAoXCJlcnJvclwiIGluIGRhdGEpIHtcbiAgICByZXR1cm4gZGF0YS5lcnJvcjtcbiAgfVxuXG4gIHJldHVybiBkYXRhO1xufVxuXG5mdW5jdGlvbiBmb3JtYXRQYXJhbShwYXJhbTogdW5rbm93bik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGlmIChpc051bGxpc2gocGFyYW0pKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGlmICh0eXBlb2YgcGFyYW0gPT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4gcGFyYW07XG4gIH1cblxuICB0cnkge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShwYXJhbSk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBTdHJpbmcocGFyYW0pO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRSdHpyRXJyb3JEYXRhKGRhdGE6IFJ0enJFcnJvckRhdGEpOiBzdHJpbmcge1xuICBjb25zdCBlcnJvciA9IG5vcm1hbGl6ZVJ0enJFcnJvckRhdGEoZGF0YSk7XG4gIGNvbnN0IHBhcmFtID0gZm9ybWF0UGFyYW0oZXJyb3IucGFyYW0pO1xuICBjb25zdCBwYXJ0cyA9IFtcbiAgICBpc051bGxpc2goZXJyb3IuY29kZSkgPyB1bmRlZmluZWQgOiBgY29kZSAke2Vycm9yLmNvZGV9YCxcbiAgICBpc051bGxpc2goZXJyb3IudHlwZSkgPyB1bmRlZmluZWQgOiBgdHlwZSAke2Vycm9yLnR5cGV9YCxcbiAgICBpc051bGxpc2gocGFyYW0pID8gdW5kZWZpbmVkIDogYHBhcmFtICR7cGFyYW19YCxcbiAgXS5maWx0ZXIoKGl0ZW0pOiBpdGVtIGlzIHN0cmluZyA9PiAhaXNOdWxsaXNoKGl0ZW0pICYmIGl0ZW0ubGVuZ3RoID4gMCk7XG4gIGNvbnN0IG1lc3NhZ2UgPSBlcnJvci5tc2cgPz8gZXJyb3IubWVzc2FnZTtcblxuICBpZiAoIWlzTnVsbGlzaChtZXNzYWdlKSAmJiBtZXNzYWdlLmxlbmd0aCA+IDApIHtcbiAgICByZXR1cm4gWy4uLnBhcnRzLCBtZXNzYWdlXS5qb2luKFwiOiBcIik7XG4gIH1cblxuICBpZiAocGFydHMubGVuZ3RoID4gMCkge1xuICAgIHJldHVybiBwYXJ0cy5qb2luKFwiOiBcIik7XG4gIH1cblxuICByZXR1cm4gXCJ1bmtub3duIFJUWlIgZXJyb3JcIjtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZvcm1hdFJ0enJFcnJvclJlc3BvbnNlQm9keShcbiAgcmVzcG9uc2VCb2R5OiBzdHJpbmcsXG4pOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICBpZiAocmVzcG9uc2VCb2R5LnRyaW0oKS5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3QgcGFyc2VkRXJyb3IgPSBhd2FpdCBzYWZlUGFyc2VKU09OKHtcbiAgICB0ZXh0OiByZXNwb25zZUJvZHksXG4gICAgc2NoZW1hOiB6b2RTY2hlbWEocnR6ckVycm9yRGF0YVNjaGVtYSksXG4gIH0pO1xuXG4gIGlmICghcGFyc2VkRXJyb3Iuc3VjY2Vzcykge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICByZXR1cm4gZm9ybWF0UnR6ckVycm9yRGF0YShwYXJzZWRFcnJvci52YWx1ZSk7XG59XG5cbmV4cG9ydCBjb25zdCBydHpyRmFpbGVkUmVzcG9uc2VIYW5kbGVyOiBSZXNwb25zZUhhbmRsZXI8QVBJQ2FsbEVycm9yPiA9IGFzeW5jICh7XG4gIHJlc3BvbnNlLFxuICB1cmwsXG4gIHJlcXVlc3RCb2R5VmFsdWVzLFxufSkgPT4ge1xuICBjb25zdCByZXNwb25zZUJvZHkgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7XG4gIGNvbnN0IHJlc3BvbnNlSGVhZGVycyA9IGV4dHJhY3RSZXNwb25zZUhlYWRlcnMocmVzcG9uc2UpO1xuICBjb25zdCBkZXRhaWwgPVxuICAgIChhd2FpdCBmb3JtYXRSdHpyRXJyb3JSZXNwb25zZUJvZHkocmVzcG9uc2VCb2R5KSkgPz9cbiAgICByZXNwb25zZS5zdGF0dXNUZXh0ID8/XG4gICAgXCJ1bnBhcnNlYWJsZSBSVFpSIGVycm9yIHJlc3BvbnNlXCI7XG4gIGNvbnN0IHBhcnNlZEVycm9yID0gYXdhaXQgc2FmZVBhcnNlSlNPTih7XG4gICAgdGV4dDogcmVzcG9uc2VCb2R5LFxuICAgIHNjaGVtYTogem9kU2NoZW1hKHJ0enJFcnJvckRhdGFTY2hlbWEpLFxuICB9KTtcblxuICByZXR1cm4ge1xuICAgIHJlc3BvbnNlSGVhZGVycyxcbiAgICB2YWx1ZTogbmV3IEFQSUNhbGxFcnJvcih7XG4gICAgICBtZXNzYWdlOiBgSFRUUCAke3Jlc3BvbnNlLnN0YXR1c306ICR7ZGV0YWlsfWAsXG4gICAgICB1cmwsXG4gICAgICByZXF1ZXN0Qm9keVZhbHVlcyxcbiAgICAgIHN0YXR1c0NvZGU6IHJlc3BvbnNlLnN0YXR1cyxcbiAgICAgIHJlc3BvbnNlSGVhZGVycyxcbiAgICAgIHJlc3BvbnNlQm9keSxcbiAgICAgIGRhdGE6IHBhcnNlZEVycm9yLnN1Y2Nlc3MgPyBwYXJzZWRFcnJvci52YWx1ZSA6IHVuZGVmaW5lZCxcbiAgICB9KSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjbGFzcyBSdHpyQ2xpZW50RXJyb3IgZXh0ZW5kcyBBSVNES0Vycm9yIHtcbiAgY29uc3RydWN0b3IoXG4gICAgbWVzc2FnZTogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICBjYXVzZT86IEVycm9yO1xuICAgIH0sXG4gICkge1xuICAgIHN1cGVyKHtcbiAgICAgIG5hbWU6IFwiUnR6ckNsaWVudEVycm9yXCIsXG4gICAgICBtZXNzYWdlLFxuICAgICAgY2F1c2U6IG9wdGlvbnM/LmNhdXNlLFxuICAgIH0pO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFLQSxNQUFNLDBCQUEwQkEsSUFBRSxPQUFPO0NBQ3ZDLE1BQU1BLElBQUUsTUFBTSxDQUFDQSxJQUFFLE9BQU8sR0FBR0EsSUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUTtDQUNoRCxLQUFLQSxJQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVE7Q0FDeEIsTUFBTUEsSUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRO0NBQ3pCLE9BQU9BLElBQUUsUUFBUSxDQUFDLENBQUMsUUFBUTtBQUM3QixDQUFDO0FBRUQsTUFBTSw0QkFBNEJBLElBQUUsT0FBTyxFQUN6QyxPQUFPQSxJQUFFLE9BQU87Q0FDZCxLQUFLQSxJQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVE7Q0FDeEIsU0FBU0EsSUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRO0NBQzVCLE1BQU1BLElBQUUsT0FBTyxDQUFDLENBQUMsUUFBUTtDQUN6QixPQUFPQSxJQUFFLFFBQVEsQ0FBQyxDQUFDLFFBQVE7Q0FDM0IsTUFBTUEsSUFBRSxNQUFNLENB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
@@ -2,5 +2,4 @@ import { RtzrClientError, formatRtzrErrorData, formatRtzrErrorResponseBody, rtzr
2
2
  import { rtzrTranscriptionProviderOptions } from "./options.js";
3
3
  import { RtzrTranscriptionModel } from "./model.js";
4
4
  import { createRtzr, rtzr } from "./provider.js";
5
-
6
- export { RtzrClientError, RtzrTranscriptionModel, createRtzr, formatRtzrErrorData, formatRtzrErrorResponseBody, rtzr, rtzrErrorDataSchema, rtzrFailedResponseHandler, rtzrTranscriptionProviderOptions };
5
+ export { RtzrClientError, RtzrTranscriptionModel, createRtzr, formatRtzrErrorData, formatRtzrErrorResponseBody, rtzr, rtzrErrorDataSchema, rtzrFailedResponseHandler, rtzrTranscriptionProviderOptions };
@@ -3,12 +3,13 @@ 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
-
7
6
  //#region src/ai/providers/rtzr/model.ts
8
7
  function isNullish(value) {
9
- return value === null || value === undefined;
8
+ return value === null || value === void 0;
10
9
  }
11
10
  var RtzrTranscriptionModel = class {
11
+ modelId;
12
+ config;
12
13
  specificationVersion = "v3";
13
14
  get provider() {
14
15
  return this.config.provider;
@@ -18,8 +19,7 @@ var RtzrTranscriptionModel = class {
18
19
  this.config = config;
19
20
  }
20
21
  async authorize() {
21
- const fetchApi = this.config.fetch ?? fetch;
22
- const response = await fetchApi(this.config.url({ path: "/authenticate" }), {
22
+ const response = await (this.config.fetch ?? fetch)(this.config.url({ path: "/authenticate" }), {
23
23
  method: "POST",
24
24
  headers: { "Content-Type": "application/x-www-form-urlencoded" },
25
25
  body: new URLSearchParams({
@@ -36,9 +36,7 @@ var RtzrTranscriptionModel = class {
36
36
  text: responseBody,
37
37
  schema: zodSchema(rtzrAuthResponseSchema)
38
38
  });
39
- if (!parsedData.success) {
40
- throw new RtzrClientError(`Invalid RTZR auth response: ${parsedData.error.message}`);
41
- }
39
+ if (!parsedData.success) throw new RtzrClientError(`Invalid RTZR auth response: ${parsedData.error.message}`);
42
40
  return parsedData.value.access_token;
43
41
  }
44
42
  async getArgs({ audio, mediaType, providerOptions }) {
@@ -63,10 +61,9 @@ var RtzrTranscriptionModel = class {
63
61
  };
64
62
  }
65
63
  async doGenerate(options) {
66
- const currentDate = this.config._internal?.currentDate?.() ?? new Date();
67
- const accessToken = await this.authorize();
64
+ const currentDate = this.config._internal?.currentDate?.() ?? /* @__PURE__ */ new Date();
68
65
  const headers = {
69
- Authorization: `Bearer ${accessToken}`,
66
+ Authorization: `Bearer ${await this.authorize()}`,
70
67
  ...options.headers
71
68
  };
72
69
  const { formData, warnings } = await this.getArgs(options);
@@ -90,21 +87,17 @@ var RtzrTranscriptionModel = class {
90
87
  abortSignal: options.abortSignal,
91
88
  fetch: this.config.fetch
92
89
  });
93
- if (data.value.status !== "transcribing") {
94
- return data;
95
- }
90
+ if (data.value.status !== "transcribing") return data;
96
91
  }
97
92
  })();
98
93
  if (response.status === "failed") {
99
94
  const detail = isNullish(response.error) ? "unknown RTZR transcription error" : formatRtzrErrorData({ error: response.error });
100
- throw new RtzrClientError(`RTZR transcription failed for id ${response.id}: status ${response.status}: ` + `provider ${this.provider}: model ${this.modelId}: ${detail}`);
95
+ throw new RtzrClientError(`RTZR transcription failed for id ${response.id}: status ${response.status}: provider ${this.provider}: model ${this.modelId}: ${detail}`);
101
96
  }
102
97
  const segments = response.results?.utterances ?? [];
103
98
  const languages = new Set(segments.map((item) => item.lang).filter((item) => !isEmpty(item)));
104
99
  const language = (() => {
105
- if (languages.size > 1) {
106
- return undefined;
107
- }
100
+ if (languages.size > 1) return;
108
101
  return languages.values().next().value;
109
102
  })();
110
103
  return {
@@ -116,7 +109,7 @@ var RtzrTranscriptionModel = class {
116
109
  })),
117
110
  language,
118
111
  warnings,
119
- durationInSeconds: segments.reduce((acc, segment) => acc + segment.duration, 0) ?? undefined,
112
+ durationInSeconds: segments.reduce((acc, segment) => acc + segment.duration, 0) ?? void 0,
120
113
  response: {
121
114
  timestamp: currentDate,
122
115
  modelId: this.modelId,
@@ -126,7 +119,7 @@ var RtzrTranscriptionModel = class {
126
119
  };
127
120
  }
128
121
  };
129
-
130
122
  //#endregion
131
123
  export { RtzrTranscriptionModel };
132
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuanMiLCJuYW1lcyI6WyJtb2RlbElkOiBSdHpyVHJhbnNjcmlwdGlvbk1vZGVsSWQiLCJjb25maWc6IFJ0enJUcmFuc2NyaXB0aW9uTW9kZWxDb25maWciLCJ3YXJuaW5nczogU2hhcmVkVjNXYXJuaW5nW10iXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYWkvcHJvdmlkZXJzL3J0enIvbW9kZWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgdHlwZSBTaGFyZWRWM1dhcm5pbmcsXG4gIHR5cGUgVHJhbnNjcmlwdGlvbk1vZGVsVjMsXG4gIHR5cGUgVHJhbnNjcmlwdGlvbk1vZGVsVjNDYWxsT3B0aW9ucyxcbn0gZnJvbSBcIkBhaS1zZGsvcHJvdmlkZXJcIjtcbmltcG9ydCB7XG4gIGNvbWJpbmVIZWFkZXJzLFxuICBjb252ZXJ0QmFzZTY0VG9VaW50OEFycmF5LFxuICBjcmVhdGVKc29uUmVzcG9uc2VIYW5kbGVyLFxuICBnZXRGcm9tQXBpLFxuICBtZWRpYVR5cGVUb0V4dGVuc2lvbixcbiAgcGFyc2VQcm92aWRlck9wdGlvbnMsXG4gIHBvc3RGb3JtRGF0YVRvQXBpLFxuICBzYWZlUGFyc2VKU09OLFxuICB6b2RTY2hlbWEsXG59IGZyb20gXCJAYWktc2RrL3Byb3ZpZGVyLXV0aWxzXCI7XG5pbXBvcnQgeyB0eXBlIEZldGNoRnVuY3Rpb24gfSBmcm9tIFwiQGFpLXNkay9wcm92aWRlci11dGlsc1wiO1xuaW1wb3J0IHsgaXNFbXB0eSB9IGZyb20gXCJyYWRhc2hpXCI7XG5cbmltcG9ydCB7XG4gIHJ0enJBdXRoUmVzcG9uc2VTY2hlbWEsXG4gIHJ0enJUcmFuc2NyaXB0aW9uUmVzcG9uc2VTY2hlbWEsXG4gIHJ0enJUcmFuc2NyaXB0aW9uUmVzdWx0UmVzcG9uc2VTY2hlbWEsXG59IGZyb20gXCIuL2FwaVwiO1xuaW1wb3J0IHtcbiAgZm9ybWF0UnR6ckVycm9yRGF0YSxcbiAgZm9ybWF0UnR6ckVycm9yUmVzcG9uc2VCb2R5LFxuICBSdHpyQ2xpZW50RXJyb3IsXG4gIHJ0enJGYWlsZWRSZXNwb25zZUhhbmRsZXIsXG59IGZyb20gXCIuL2Vycm9yXCI7XG5pbXBvcnQgeyBydHpyVHJhbnNjcmlwdGlvblByb3ZpZGVyT3B0aW9ucyB9IGZyb20gXCIuL29wdGlvbnNcIjtcbmltcG9ydCB7IHR5cGUgUnR6clRyYW5zY3JpcHRpb25Nb2RlbElkLCB0eXBlIFJ0enJUcmFuc2NyaXB0aW9uUHJvdmlkZXJPcHRpb25zIH0gZnJvbSBcIi4vb3B0aW9uc1wiO1xuXG5mdW5jdGlvbiBpc051bGxpc2godmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBudWxsIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCB0eXBlIFJ0enJUcmFuc2NyaXB0aW9uQ2FsbE9wdGlvbnMgPSBPbWl0PFxuICBUcmFuc2NyaXB0aW9uTW9kZWxWM0NhbGxPcHRpb25zLFxuICBcInByb3ZpZGVyT3B0aW9uc1wiXG4+ICYge1xuICBwcm92aWRlck9wdGlvbnM/OiB7XG4gICAgcnR6cj86IFJ0enJUcmFuc2NyaXB0aW9uUHJvdmlkZXJPcHRpb25zO1xuICB9O1xufTtcblxuaW50ZXJmYWNlIFJ0enJUcmFuc2NyaXB0aW9uTW9kZWxDb25maWcge1xuICBfaW50ZXJuYWw/OiB7XG4gICAgY3VycmVudERhdGU/OiAoKSA9PiBEYXRlO1xuICB9O1xuICBwcm92aWRlcjogc3RyaW5nO1xuICBhdXRoOiB7XG4gICAgY2xpZW50SWQ6IHN0cmluZztcbiAgICBjbGllbnRTZWNyZXQ6IHN0cmluZztcbiAgfTtcbiAgdXJsOiAob3B0aW9uczogeyBwYXRoOiBzdHJpbmcgfSkgPT4gc3RyaW5nO1xuICBoZWFkZXJzOiAoKSA9PiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+O1xuICBmZXRjaD86IEZldGNoRnVuY3Rpb247XG4gIGdlbmVyYXRlSWQ/OiAoKSA9PiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBSdHpyVHJhbnNjcmlwdGlvbk1vZGVsIGltcGxlbWVudHMgVHJhbnNjcmlwdGlvbk1vZGVsVjMge1xuICByZWFkb25seSBzcGVjaWZpY2F0aW9uVmVyc2lvbiA9IFwidjNcIjtcblxuICBnZXQgcHJvdmlkZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucHJvdmlkZXI7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICByZWFkb25seSBtb2RlbElkOiBSdHpyVHJhbnNjcmlwdGlvbk1vZGVsSWQsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWc6IFJ0enJUcmFuc2NyaXB0aW9uTW9kZWxDb25maWcsXG4gICkge31cblxuICBwcml2YXRlIGFzeW5jIGF1dGhvcml6ZSgpIHtcbiAgICBjb25zdCBmZXRjaEFwaSA9IHRoaXMuY29uZmlnLmZldGNoID8/IGZldGNoO1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hBcGkoXG4gICAgICB0aGlzLmNvbmZpZy51cmwoe1xuICAgICAgICBwYXRoOiBcIi9hdXRoZW50aWNhdGVcIixcbiAgICAgIH0pLFxuICAgICAge1xuICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRcIixcbiAgICAgICAgfSxcbiAgICAgICAgYm9keTogbmV3IFVSTFNlYXJjaFBhcmFtcyh7XG4gICAgICAgICAgY2xpZW50X2lkOiB0aGlzLmNvbmZpZy5hdXRoLmNsaWVudElkLFxuICAgICAgICAgIGNsaWVudF9zZWNyZXQ6IHRoaXMuY29uZmlnLmF1dGguY2xpZW50U2VjcmV0LFxuICAgICAgICB9KSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIGNvbnN0IHJlc3BvbnNlQm9keSA9IGF3YWl0IHJlc3BvbnNlLnRleHQoKTtcbiAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICBjb25zdCBkZXRhaWwgPSBhd2FpdCBmb3JtYXRSdHpyRXJyb3JSZXNwb25zZUJvZHkocmVzcG9uc2VCb2R5KTtcbiAgICAgIHRocm93IG5ldyBSdHpyQ2xpZW50RXJyb3IoXG4gICAgICAgIGBGYWlsZWQgdG8gYXV0aG9yaXplIFJUWlI6IEhUVFAgJHtyZXNwb25zZS5zdGF0dXN9JHtcbiAgICAgICAgICBpc051bGxpc2goZGV0YWlsKSA/IFwiXCIgOiBgOiAke2RldGFpbH1gXG4gICAgICAgIH1gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBwYXJzZWREYXRhID0gYXdhaXQgc2FmZVBhcnNlSlNPTih7XG4gICAgICB0ZXh0OiByZXNwb25zZUJvZHksXG4gICAgICBzY2hlbWE6IHpvZFNjaGVtYShydHpyQXV0aFJlc3BvbnNlU2NoZW1hKSxcbiAgICB9KTtcbiAgICBpZiAoIXBhcnNlZERhdGEuc3VjY2Vzcykge1xuICAgICAgdGhyb3cgbmV3IFJ0enJDbGllbnRFcnJvcihgSW52YWxpZCBSVFpSIGF1dGggcmVzcG9uc2U6ICR7cGFyc2VkRGF0YS5lcnJvci5tZXNzYWdlfWApO1xuICAgIH1cblxuICAgIHJldHVybiBwYXJzZWREYXRhLnZhbHVlLmFjY2Vzc190b2tlbjtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0QXJncyh7IGF1ZGlvLCBtZWRpYVR5cGUsIHByb3ZpZGVyT3B0aW9ucyB9OiBSdHpyVHJhbnNjcmlwdGlvbkNhbGxPcHRpb25zKSB7XG4gICAgY29uc3Qgd2FybmluZ3M6IFNoYXJlZFYzV2FybmluZ1tdID0gW107XG4gICAgY29uc3QgcnR6ck9wdGlvbnMgPSBhd2FpdCBwYXJzZVByb3ZpZGVyT3B0aW9ucyh7XG4gICAgICBwcm92aWRlcjogXCJydHpyXCIsXG4gICAgICBwcm92aWRlck9wdGlvbnMsXG4gICAgICBzY2hlbWE6IHJ0enJUcmFuc2NyaXB0aW9uUHJvdmlkZXJPcHRpb25zLFxuICAgIH0pO1xuXG4gICAgY29uc3QgYmxvYiA9XG4gICAgICBhdWRpbyBpbnN0YW5jZW9mIFVpbnQ4QXJyYXlcbiAgICAgICAgPyBuZXcgQmxvYihbbmV3IFVpbnQ4QXJyYXkoYXVkaW8pXSlcbiAgICAgICAgOiBuZXcgQmxvYihbY29udmVydEJhc2U2NFRvVWludDhBcnJheShhdWRpbyldKTtcblxuICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgY29uc3QgZmlsZUV4dGVuc2lvbiA9IG1lZGlhVHlwZVRvRXh0ZW5zaW9uKG1lZGlhVHlwZSk7XG4gICAgZm9ybURhdGEuYXBwZW5kKFxuICAgICAgXCJmaWxlXCIsXG4gICAgICBuZXcgRmlsZShbYmxvYl0sIFwiYXVkaW9cIiwgeyB0eXBlOiBtZWRpYVR5cGUgfSksXG4gICAgICBgYXVkaW8uJHtmaWxlRXh0ZW5zaW9ufWAsXG4gICAgKTtcblxuICAgIGNvbnN0IGNvbmZpZyA9IHsgbW9kZWxfbmFtZTogdGhpcy5tb2RlbElkLCAuLi5ydHpyT3B0aW9ucyB9O1xuICAgIGZvcm1EYXRhLmFwcGVuZChcImNvbmZpZ1wiLCBKU09OLnN0cmluZ2lmeShjb25maWcpKTtcblxuICAgIHJldHVybiB7IGZvcm1EYXRhLCB3YXJuaW5ncyB9O1xuICB9XG5cbiAgYXN5bmMgZG9HZW5lcmF0ZShvcHRpb25zOiBSdHpyVHJhbnNjcmlwdGlvbkNhbGxPcHRpb25zKSB7XG4gICAgY29uc3QgY3VycmVudERhdGUgPSB0aGlzLmNvbmZpZy5faW50ZXJuYWw/LmN1cnJlbnREYXRlPy4oKSA/PyBuZXcgRGF0ZSgpO1xuXG4gICAgY29uc3QgYWNjZXNzVG9rZW4gPSBhd2FpdCB0aGlzLmF1dGhvcml6ZSgpO1xuICAgIGNvbnN0IGhlYWRlcnMgPSB7XG4gICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7YWNjZXNzVG9rZW59YCxcbiAgICAgIC4uLm9wdGlvbnMuaGVhZGVycyxcbiAgICB9O1xuXG4gICAgY29uc3QgeyBmb3JtRGF0YSwgd2FybmluZ3MgfSA9IGF3YWl0IHRoaXMuZ2V0QXJncyhvcHRpb25zKTtcbiAgICBjb25zdCB7XG4gICAgICB2YWx1ZTogeyBpZDogdHJhbnNjcmlwdGlvbklkIH0sXG4gICAgICByZXNwb25zZUhlYWRlcnMsXG4gICAgfSA9IGF3YWl0IHBvc3RGb3JtRGF0YVRvQXBpKHtcbiAgICAgIHVybDogdGhpcy5jb25maWcudXJsKHtcbiAgICAgICAgcGF0aDogXCIvdHJhbnNjcmliZVwiLFxuICAgICAgfSksXG4gICAgICBoZWFkZXJzOiBjb21iaW5lSGVhZGVycyh0aGlzLmNvbmZpZy5oZWFkZXJzKCksIGhlYWRlcnMpLFxuICAgICAgZm9ybURhdGEsXG4gICAgICBmYWlsZWRSZXNwb25zZUhhbmRsZXI6IHJ0enJGYWlsZWRSZXNwb25zZUhhbmRsZXIsXG4gICAgICBzdWNjZXNzZnVsUmVzcG9uc2VIYW5kbGVyOiBjcmVhdGVKc29uUmVzcG9uc2VIYW5kbGVyKHJ0enJUcmFuc2NyaXB0aW9uUmVzcG9uc2VTY2hlbWEpLFxuICAgICAgYWJvcnRTaWduYWw6IG9wdGlvbnMuYWJvcnRTaWduYWwsXG4gICAgICBmZXRjaDogdGhpcy5jb25maWcuZmV0Y2gsXG4gICAgfSk7XG5cbiAgICBjb25zdCB7IHZhbHVlOiByZXNwb25zZSwgcmF3VmFsdWUgfSA9IGF3YWl0IChhc3luYyAoKSA9PiB7XG4gICAgICAvLyB0cmFuc2NyaXB0aW9u7J20IOuBneuCoCDrlYzquYzsp4AgUlRaUiDqtozsnqUg6rCE6rKp7J24IDXstIjrp4jri6Qg7LK07YGsLlxuICAgICAgLy8gdGltZW91dOydhCDrlLDroZwg7KeA7KCV7ZWY7KeAIOyViuuKlCDsnbTsnKDripQg7JWg7LSI7JeQIEFib3J0U2lnbmFs7J2EIOyCrOyaqe2VmOqzoCDsnojsnYwuXG4gICAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCA1MDAwKSk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBnZXRGcm9tQXBpKHtcbiAgICAgICAgICB1cmw6IHRoaXMuY29uZmlnLnVybCh7XG4gICAgICAgICAgICBwYXRoOiBgL3RyYW5zY3JpYmUvJHt0cmFuc2NyaXB0aW9uSWR9YCxcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBoZWFkZXJzOiBjb21iaW5lSGVhZGVycyh0aGlzLmNvbmZpZy5oZWFkZXJzKCksIGhlYWRlcnMpLFxuICAgICAgICAgIGZhaWxlZFJlc3BvbnNlSGFuZGxlcjogcnR6ckZhaWxlZFJlc3BvbnNlSGFuZGxlcixcbiAgICAgICAgICBzdWNjZXNzZnVsUmVzcG9uc2VIYW5kbGVyOiBjcmVhdGVKc29uUmVzcG9uc2VIYW5kbGVyKFxuICAgICAgICAgICAgcnR6clRyYW5zY3JpcHRpb25SZXN1bHRSZXNwb25zZVNjaGVtYSxcbiAgICAgICAgICApLFxuICAgICAgICAgIGFib3J0U2lnbmFsOiBvcHRpb25zLmFib3J0U2lnbmFsLFxuICAgICAgICAgIGZldGNoOiB0aGlzLmNvbmZpZy5mZXRjaCxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKGRhdGEudmFsdWUuc3RhdHVzICE9PSBcInRyYW5zY3JpYmluZ1wiKSB7XG4gICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KSgpO1xuXG4gICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gXCJmYWlsZWRcIikge1xuICAgICAgY29uc3QgZGV0YWlsID0gaXNOdWxsaXNoKHJlc3BvbnNlLmVycm9yKVxuICAgICAgICA/IFwidW5rbm93biBSVFpSIHRyYW5zY3JpcHRpb24gZXJyb3JcIlxuICAgICAgICA6IGZvcm1hdFJ0enJFcnJvckRhdGEoe1xuICAgICAgICAgICAgZXJyb3I6IHJlc3BvbnNlLmVycm9yLFxuICAgICAgICAgIH0pO1xuICAgICAgdGhyb3cgbmV3IFJ0enJDbGllbnRFcnJvcihcbiAgICAgICAgYFJUWlIgdHJhbnNjcmlwdGlvbiBmYWlsZWQgZm9yIGlkICR7cmVzcG9uc2UuaWR9OiBzdGF0dXMgJHtyZXNwb25zZS5zdGF0dXN9OiBgICtcbiAgICAgICAgICBgcHJvdmlkZXIgJHt0aGlzLnByb3ZpZGVyfTogbW9kZWwgJHt0aGlzLm1vZGVsSWR9OiAke2RldGFpbH1gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBzZWdtZW50cyA9IHJlc3BvbnNlLnJlc3VsdHM/LnV0dGVyYW5jZXMgPz8gW107XG5cbiAgICBjb25zdCBsYW5ndWFnZXMgPSBuZXcgU2V0KHNlZ21lbnRzLm1hcCgoaXRlbSkgPT4gaXRlbS5sYW5nKS5maWx0ZXIoKGl0ZW0pID0+ICFpc0VtcHR5KGl0ZW0pKSk7XG4gICAgY29uc3QgbGFuZ3VhZ2UgPSAoKCkgPT4ge1xuICAgICAgaWYgKGxhbmd1YWdlcy5zaXplID4gMSkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gbGFuZ3VhZ2VzLnZhbHVlcygpLm5leHQoKS52YWx1ZTtcbiAgICB9KSgpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHRleHQ6IHNlZ21lbnRzLm1hcCgoaXRlbSkgPT4gaXRlbS5tc2cpLmpvaW4oXCJcXG5cIiksXG4gICAgICBzZWdtZW50czogc2VnbWVudHMubWFwKChzZWdtZW50KSA9PiAoe1xuICAgICAgICB0ZXh0OiBzZWdtZW50Lm1zZyxcbiAgICAgICAgc3RhcnRTZWNvbmQ6IE1hdGgudHJ1bmMoc2VnbWVudC5zdGFydF9hdCAvIDEwMDApLFxuICAgICAgICBlbmRTZWNvbmQ6IE1hdGgudHJ1bmMoKHNlZ21lbnQuc3RhcnRfYXQgKyBzZWdtZW50LmR1cmF0aW9uKSAvIDEwMDApLFxuICAgICAgfSkpLFxuICAgICAgbGFuZ3VhZ2UsXG4gICAgICB3YXJuaW5ncyxcbiAgICAgIGR1cmF0aW9uSW5TZWNvbmRzOiBzZWdtZW50cy5yZWR1Y2UoKGFjYywgc2VnbWVudCkgPT4gYWNjICsgc2VnbWVudC5kdXJhdGlvbiwgMCkgPz8gdW5kZWZpbmVkLFxuICAgICAgcmVzcG9uc2U6IHtcbiAgICAgICAgdGltZXN0YW1wOiBjdXJyZW50RGF0ZSxcbiAgICAgICAgbW9kZWxJZDogdGhpcy5tb2RlbElkLFxuICAgICAgICBoZWFkZXJzOiByZXNwb25zZUhlYWRlcnMsXG4gICAgICAgIGJvZHk6IHJhd1ZhbHVlLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFpQ0EsU0FBUyxVQUFVLE9BQTJDO0FBQzVELFFBQU8sVUFBVSxRQUFRLFVBQVU7O0FBMkJyQyxJQUFhLHlCQUFiLE1BQW9FO0NBQ2xFLEFBQVMsdUJBQXVCO0NBRWhDLElBQUksV0FBbUI7QUFDckIsU0FBTyxLQUFLLE9BQU87O0NBR3JCLFlBQ0UsQUFBU0EsU0FDVCxBQUFpQkMsUUFDakI7RUFGUztFQUNROztDQUduQixNQUFjLFlBQVk7RUFDeEIsTUFBTSxXQUFXLEtBQUssT0FBTyxTQUFTO0VBQ3RDLE1BQU0sV0FBVyxNQUFNLFNBQ3JCLEtBQUssT0FBTyxJQUFJLEVBQ2QsTUFBTSxpQkFDUCxDQUFDLEVBQ0Y7R0FDRSxRQUFRO0dBQ1IsU0FBUyxFQUNQLGdCQUFnQixxQ0FDakI7R0FDRCxNQUFNLElBQUksZ0JBQWdCO0lBQ3hCLFdBQVcsS0FBSyxPQUFPLEtBQUs7SUFDNUIsZUFBZSxLQUFLLE9BQU8sS0FBSztJQUNqQyxDQUFDO0dBQ0gsQ0FDRjtFQUVELE1BQU0sZUFBZSxNQUFNLFNBQVMsTUFBTTtBQUMxQyxNQUFJLENBQUMsU0FBUyxJQUFJO0dBQ2hCLE1BQU0sU0FBUyxNQUFNLDRCQUE0QixhQUFhO0FBQzlELFNBQU0sSUFBSSxnQkFDUixrQ0FBa0MsU0FBUyxTQUN6QyxVQUFVLE9BQU8sR0FBRyxLQUFLLEtBQUssV0FFakM7O0VBR0gsTUFBTSxhQUFhLE1BQU0sY0FBYztHQUNyQyxNQUFNO0dBQ04sUUFBUSxVQUFVLHVCQUF1QjtHQUMxQyxDQUFDO0FBQ0YsTUFBSSxDQUFDLFdBQVcsU0FBUztBQUN2QixTQUFNLElBQUksZ0JBQWdCLCtCQUErQixXQUFXLE1BQU0sVUFBVTs7QUFHdEYsU0FBTyxXQUFXLE1BQU07O0NBRzFCLE1B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
124
+
125
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FpL3Byb3ZpZGVycy9ydHpyL21vZGVsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIHR5cGUgU2hhcmVkVjNXYXJuaW5nLFxuICB0eXBlIFRyYW5zY3JpcHRpb25Nb2RlbFYzLFxuICB0eXBlIFRyYW5zY3JpcHRpb25Nb2RlbFYzQ2FsbE9wdGlvbnMsXG59IGZyb20gXCJAYWktc2RrL3Byb3ZpZGVyXCI7XG5pbXBvcnQge1xuICBjb21iaW5lSGVhZGVycyxcbiAgY29udmVydEJhc2U2NFRvVWludDhBcnJheSxcbiAgY3JlYXRlSnNvblJlc3BvbnNlSGFuZGxlcixcbiAgZ2V0RnJvbUFwaSxcbiAgbWVkaWFUeXBlVG9FeHRlbnNpb24sXG4gIHBhcnNlUHJvdmlkZXJPcHRpb25zLFxuICBwb3N0Rm9ybURhdGFUb0FwaSxcbiAgc2FmZVBhcnNlSlNPTixcbiAgem9kU2NoZW1hLFxufSBmcm9tIFwiQGFpLXNkay9wcm92aWRlci11dGlsc1wiO1xuaW1wb3J0IHsgdHlwZSBGZXRjaEZ1bmN0aW9uIH0gZnJvbSBcIkBhaS1zZGsvcHJvdmlkZXItdXRpbHNcIjtcbmltcG9ydCB7IGlzRW1wdHkgfSBmcm9tIFwicmFkYXNoaVwiO1xuXG5pbXBvcnQge1xuICBydHpyQXV0aFJlc3BvbnNlU2NoZW1hLFxuICBydHpyVHJhbnNjcmlwdGlvblJlc3BvbnNlU2NoZW1hLFxuICBydHpyVHJhbnNjcmlwdGlvblJlc3VsdFJlc3BvbnNlU2NoZW1hLFxufSBmcm9tIFwiLi9hcGlcIjtcbmltcG9ydCB7XG4gIGZvcm1hdFJ0enJFcnJvckRhdGEsXG4gIGZvcm1hdFJ0enJFcnJvclJlc3BvbnNlQm9keSxcbiAgUnR6ckNsaWVudEVycm9yLFxuICBydHpyRmFpbGVkUmVzcG9uc2VIYW5kbGVyLFxufSBmcm9tIFwiLi9lcnJvclwiO1xuaW1wb3J0IHsgcnR6clRyYW5zY3JpcHRpb25Qcm92aWRlck9wdGlvbnMgfSBmcm9tIFwiLi9vcHRpb25zXCI7XG5pbXBvcnQgeyB0eXBlIFJ0enJUcmFuc2NyaXB0aW9uTW9kZWxJZCwgdHlwZSBSdHpyVHJhbnNjcmlwdGlvblByb3ZpZGVyT3B0aW9ucyB9IGZyb20gXCIuL29wdGlvbnNcIjtcblxuZnVuY3Rpb24gaXNOdWxsaXNoKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgbnVsbCB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgdHlwZSBSdHpyVHJhbnNjcmlwdGlvbkNhbGxPcHRpb25zID0gT21pdDxcbiAgVHJhbnNjcmlwdGlvbk1vZGVsVjNDYWxsT3B0aW9ucyxcbiAgXCJwcm92aWRlck9wdGlvbnNcIlxuPiAmIHtcbiAgcHJvdmlkZXJPcHRpb25zPzoge1xuICAgIHJ0enI/OiBSdHpyVHJhbnNjcmlwdGlvblByb3ZpZGVyT3B0aW9ucztcbiAgfTtcbn07XG5cbmludGVyZmFjZSBSdHpyVHJhbnNjcmlwdGlvbk1vZGVsQ29uZmlnIHtcbiAgX2ludGVybmFsPzoge1xuICAgIGN1cnJlbnREYXRlPzogKCkgPT4gRGF0ZTtcbiAgfTtcbiAgcHJvdmlkZXI6IHN0cmluZztcbiAgYXV0aDoge1xuICAgIGNsaWVudElkOiBzdHJpbmc7XG4gICAgY2xpZW50U2VjcmV0OiBzdHJpbmc7XG4gIH07XG4gIHVybDogKG9wdGlvbnM6IHsgcGF0aDogc3RyaW5nIH0pID0+IHN0cmluZztcbiAgaGVhZGVyczogKCkgPT4gUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPjtcbiAgZmV0Y2g/OiBGZXRjaEZ1bmN0aW9uO1xuICBnZW5lcmF0ZUlkPzogKCkgPT4gc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgUnR6clRyYW5zY3JpcHRpb25Nb2RlbCBpbXBsZW1lbnRzIFRyYW5zY3JpcHRpb25Nb2RlbFYzIHtcbiAgcmVhZG9ubHkgc3BlY2lmaWNhdGlvblZlcnNpb24gPSBcInYzXCI7XG5cbiAgZ2V0IHByb3ZpZGVyKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnByb3ZpZGVyO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcmVhZG9ubHkgbW9kZWxJZDogUnR6clRyYW5zY3JpcHRpb25Nb2RlbElkLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnOiBSdHpyVHJhbnNjcmlwdGlvbk1vZGVsQ29uZmlnLFxuICApIHt9XG5cbiAgcHJpdmF0ZSBhc3luYyBhdXRob3JpemUoKSB7XG4gICAgY29uc3QgZmV0Y2hBcGkgPSB0aGlzLmNvbmZpZy5mZXRjaCA/PyBmZXRjaDtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoQXBpKFxuICAgICAgdGhpcy5jb25maWcudXJsKHtcbiAgICAgICAgcGF0aDogXCIvYXV0aGVudGljYXRlXCIsXG4gICAgICB9KSxcbiAgICAgIHtcbiAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCIsXG4gICAgICAgIH0sXG4gICAgICAgIGJvZHk6IG5ldyBVUkxTZWFyY2hQYXJhbXMoe1xuICAgICAgICAgIGNsaWVudF9pZDogdGhpcy5jb25maWcuYXV0aC5jbGllbnRJZCxcbiAgICAgICAgICBjbGllbnRfc2VjcmV0OiB0aGlzLmNvbmZpZy5hdXRoLmNsaWVudFNlY3JldCxcbiAgICAgICAgfSksXG4gICAgICB9LFxuICAgICk7XG5cbiAgICBjb25zdCByZXNwb25zZUJvZHkgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7XG4gICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgY29uc3QgZGV0YWlsID0gYXdhaXQgZm9ybWF0UnR6ckVycm9yUmVzcG9uc2VCb2R5KHJlc3BvbnNlQm9keSk7XG4gICAgICB0aHJvdyBuZXcgUnR6ckNsaWVudEVycm9yKFxuICAgICAgICBgRmFpbGVkIHRvIGF1dGhvcml6ZSBSVFpSOiBIVFRQICR7cmVzcG9uc2Uuc3RhdHVzfSR7XG4gICAgICAgICAgaXNOdWxsaXNoKGRldGFpbCkgPyBcIlwiIDogYDogJHtkZXRhaWx9YFxuICAgICAgICB9YCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgcGFyc2VkRGF0YSA9IGF3YWl0IHNhZmVQYXJzZUpTT04oe1xuICAgICAgdGV4dDogcmVzcG9uc2VCb2R5LFxuICAgICAgc2NoZW1hOiB6b2RTY2hlbWEocnR6ckF1dGhSZXNwb25zZVNjaGVtYSksXG4gICAgfSk7XG4gICAgaWYgKCFwYXJzZWREYXRhLnN1Y2Nlc3MpIHtcbiAgICAgIHRocm93IG5ldyBSdHpyQ2xpZW50RXJyb3IoYEludmFsaWQgUlRaUiBhdXRoIHJlc3BvbnNlOiAke3BhcnNlZERhdGEuZXJyb3IubWVzc2FnZX1gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGFyc2VkRGF0YS52YWx1ZS5hY2Nlc3NfdG9rZW47XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldEFyZ3MoeyBhdWRpbywgbWVkaWFUeXBlLCBwcm92aWRlck9wdGlvbnMgfTogUnR6clRyYW5zY3JpcHRpb25DYWxsT3B0aW9ucykge1xuICAgIGNvbnN0IHdhcm5pbmdzOiBTaGFyZWRWM1dhcm5pbmdbXSA9IFtdO1xuICAgIGNvbnN0IHJ0enJPcHRpb25zID0gYXdhaXQgcGFyc2VQcm92aWRlck9wdGlvbnMoe1xuICAgICAgcHJvdmlkZXI6IFwicnR6clwiLFxuICAgICAgcHJvdmlkZXJPcHRpb25zLFxuICAgICAgc2NoZW1hOiBydHpyVHJhbnNjcmlwdGlvblByb3ZpZGVyT3B0aW9ucyxcbiAgICB9KTtcblxuICAgIGNvbnN0IGJsb2IgPVxuICAgICAgYXVkaW8gaW5zdGFuY2VvZiBVaW50OEFycmF5XG4gICAgICAgID8gbmV3IEJsb2IoW25ldyBVaW50OEFycmF5KGF1ZGlvKV0pXG4gICAgICAgIDogbmV3IEJsb2IoW2NvbnZlcnRCYXNlNjRUb1VpbnQ4QXJyYXkoYXVkaW8pXSk7XG5cbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGNvbnN0IGZpbGVFeHRlbnNpb24gPSBtZWRpYVR5cGVUb0V4dGVuc2lvbihtZWRpYVR5cGUpO1xuICAgIGZvcm1EYXRhLmFwcGVuZChcbiAgICAgIFwiZmlsZVwiLFxuICAgICAgbmV3IEZpbGUoW2Jsb2JdLCBcImF1ZGlvXCIsIHsgdHlwZTogbWVkaWFUeXBlIH0pLFxuICAgICAgYGF1ZGlvLiR7ZmlsZUV4dGVuc2lvbn1gLFxuICAgICk7XG5cbiAgICBjb25zdCBjb25maWcgPSB7IG1vZGVsX25hbWU6IHRoaXMubW9kZWxJZCwgLi4ucnR6ck9wdGlvbnMgfTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoXCJjb25maWdcIiwgSlNPTi5zdHJpbmdpZnkoY29uZmlnKSk7XG5cbiAgICByZXR1cm4geyBmb3JtRGF0YSwgd2FybmluZ3MgfTtcbiAgfVxuXG4gIGFzeW5jIGRvR2VuZXJhdGUob3B0aW9uczogUnR6clRyYW5zY3JpcHRpb25DYWxsT3B0aW9ucykge1xuICAgIGNvbnN0IGN1cnJlbnREYXRlID0gdGhpcy5jb25maWcuX2ludGVybmFsPy5jdXJyZW50RGF0ZT8uKCkgPz8gbmV3IERhdGUoKTtcblxuICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gYXdhaXQgdGhpcy5hdXRob3JpemUoKTtcbiAgICBjb25zdCBoZWFkZXJzID0ge1xuICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2FjY2Vzc1Rva2VufWAsXG4gICAgICAuLi5vcHRpb25zLmhlYWRlcnMsXG4gICAgfTtcblxuICAgIGNvbnN0IHsgZm9ybURhdGEsIHdhcm5pbmdzIH0gPSBhd2FpdCB0aGlzLmdldEFyZ3Mob3B0aW9ucyk7XG4gICAgY29uc3Qge1xuICAgICAgdmFsdWU6IHsgaWQ6IHRyYW5zY3JpcHRpb25JZCB9LFxuICAgICAgcmVzcG9uc2VIZWFkZXJzLFxuICAgIH0gPSBhd2FpdCBwb3N0Rm9ybURhdGFUb0FwaSh7XG4gICAgICB1cmw6IHRoaXMuY29uZmlnLnVybCh7XG4gICAgICAgIHBhdGg6IFwiL3RyYW5zY3JpYmVcIixcbiAgICAgIH0pLFxuICAgICAgaGVhZGVyczogY29tYmluZUhlYWRlcnModGhpcy5jb25maWcuaGVhZGVycygpLCBoZWFkZXJzKSxcbiAgICAgIGZvcm1EYXRhLFxuICAgICAgZmFpbGVkUmVzcG9uc2VIYW5kbGVyOiBydHpyRmFpbGVkUmVzcG9uc2VIYW5kbGVyLFxuICAgICAgc3VjY2Vzc2Z1bFJlc3BvbnNlSGFuZGxlcjogY3JlYXRlSnNvblJlc3BvbnNlSGFuZGxlcihydHpyVHJhbnNjcmlwdGlvblJlc3BvbnNlU2NoZW1hKSxcbiAgICAgIGFib3J0U2lnbmFsOiBvcHRpb25zLmFib3J0U2lnbmFsLFxuICAgICAgZmV0Y2g6IHRoaXMuY29uZmlnLmZldGNoLFxuICAgIH0pO1xuXG4gICAgY29uc3QgeyB2YWx1ZTogcmVzcG9uc2UsIHJhd1ZhbHVlIH0gPSBhd2FpdCAoYXN5bmMgKCkgPT4ge1xuICAgICAgLy8gdHJhbnNjcmlwdGlvbuydtCDrgZ3rgqAg65WM6rmM7KeAIFJUWlIg6raM7J6lIOqwhOqyqeyduCA17LSI66eI64ukIOyytO2BrC5cbiAgICAgIC8vIHRpbWVvdXTsnYQg65Sw66GcIOyngOygle2VmOyngCDslYrripQg7J207Jyg64qUIOyVoOy0iOyXkCBBYm9ydFNpZ25hbOydhCDsgqzsmqntlZjqs6Ag7J6I7J2MLlxuICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgNTAwMCkpO1xuICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgZ2V0RnJvbUFwaSh7XG4gICAgICAgICAgdXJsOiB0aGlzLmNvbmZpZy51cmwoe1xuICAgICAgICAgICAgcGF0aDogYC90cmFuc2NyaWJlLyR7dHJhbnNjcmlwdGlvbklkfWAsXG4gICAgICAgICAgfSksXG4gICAgICAgICAgaGVhZGVyczogY29tYmluZUhlYWRlcnModGhpcy5jb25maWcuaGVhZGVycygpLCBoZWFkZXJzKSxcbiAgICAgICAgICBmYWlsZWRSZXNwb25zZUhhbmRsZXI6IHJ0enJGYWlsZWRSZXNwb25zZUhhbmRsZXIsXG4gICAgICAgICAgc3VjY2Vzc2Z1bFJlc3BvbnNlSGFuZGxlcjogY3JlYXRlSnNvblJlc3BvbnNlSGFuZGxlcihcbiAgICAgICAgICAgIHJ0enJUcmFuc2NyaXB0aW9uUmVzdWx0UmVzcG9uc2VTY2hlbWEsXG4gICAgICAgICAgKSxcbiAgICAgICAgICBhYm9ydFNpZ25hbDogb3B0aW9ucy5hYm9ydFNpZ25hbCxcbiAgICAgICAgICBmZXRjaDogdGhpcy5jb25maWcuZmV0Y2gsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChkYXRhLnZhbHVlLnN0YXR1cyAhPT0gXCJ0cmFuc2NyaWJpbmdcIikge1xuICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSkoKTtcblxuICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09IFwiZmFpbGVkXCIpIHtcbiAgICAgIGNvbnN0IGRldGFpbCA9IGlzTnVsbGlzaChyZXNwb25zZS5lcnJvcilcbiAgICAgICAgPyBcInVua25vd24gUlRaUiB0cmFuc2NyaXB0aW9uIGVycm9yXCJcbiAgICAgICAgOiBmb3JtYXRSdHpyRXJyb3JEYXRhKHtcbiAgICAgICAgICAgIGVycm9yOiByZXNwb25zZS5lcnJvcixcbiAgICAgICAgICB9KTtcbiAgICAgIHRocm93IG5ldyBSdHpyQ2xpZW50RXJyb3IoXG4gICAgICAgIGBSVFpSIHRyYW5zY3JpcHRpb24gZmFpbGVkIGZvciBpZCAke3Jlc3BvbnNlLmlkfTogc3RhdHVzICR7cmVzcG9uc2Uuc3RhdHVzfTogYCArXG4gICAgICAgICAgYHByb3ZpZGVyICR7dGhpcy5wcm92aWRlcn06IG1vZGVsICR7dGhpcy5tb2RlbElkfTogJHtkZXRhaWx9YCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2VnbWVudHMgPSByZXNwb25zZS5yZXN1bHRzPy51dHRlcmFuY2VzID8/IFtdO1xuXG4gICAgY29uc3QgbGFuZ3VhZ2VzID0gbmV3IFNldChzZWdtZW50cy5tYXAoKGl0ZW0pID0+IGl0ZW0ubGFuZykuZmlsdGVyKChpdGVtKSA9PiAhaXNFbXB0eShpdGVtKSkpO1xuICAgIGNvbnN0IGxhbmd1YWdlID0gKCgpID0+IHtcbiAgICAgIGlmIChsYW5ndWFnZXMuc2l6ZSA+IDEpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxhbmd1YWdlcy52YWx1ZXMoKS5uZXh0KCkudmFsdWU7XG4gICAgfSkoKTtcblxuICAgIHJldHVybiB7XG4gICAgICB0ZXh0OiBzZWdtZW50cy5tYXAoKGl0ZW0pID0+IGl0ZW0ubXNnKS5qb2luKFwiXFxuXCIpLFxuICAgICAgc2VnbWVudHM6IHNlZ21lbnRzLm1hcCgoc2VnbWVudCkgPT4gKHtcbiAgICAgICAgdGV4dDogc2VnbWVudC5tc2csXG4gICAgICAgIHN0YXJ0U2Vjb25kOiBNYXRoLnRydW5jKHNlZ21lbnQuc3RhcnRfYXQgLyAxMDAwKSxcbiAgICAgICAgZW5kU2Vjb25kOiBNYXRoLnRydW5jKChzZWdtZW50LnN0YXJ0X2F0ICsgc2VnbWVudC5kdXJhdGlvbikgLyAxMDAwKSxcbiAgICAgIH0pKSxcbiAgICAgIGxhbmd1YWdlLFxuICAgICAgd2FybmluZ3MsXG4gICAgICBkdXJhdGlvbkluU2Vjb25kczogc2VnbWVudHMucmVkdWNlKChhY2MsIHNlZ21lbnQpID0+IGFjYyArIHNlZ21lbnQuZHVyYXRpb24sIDApID8/IHVuZGVmaW5lZCxcbiAgICAgIHJlc3BvbnNlOiB7XG4gICAgICAgIHRpbWVzdGFtcDogY3VycmVudERhdGUsXG4gICAgICAgIG1vZGVsSWQ6IHRoaXMubW9kZWxJZCxcbiAgICAgICAgaGVhZGVyczogcmVzcG9uc2VIZWFkZXJzLFxuICAgICAgICBib2R5OiByYXdWYWx1ZSxcbiAgICAgIH0s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
@@ -1,6 +1,5 @@
1
1
  import { lazySchema, zodSchema } from "@ai-sdk/provider-utils";
2
2
  import { z as z$1 } from "zod";
3
-
4
3
  //#region src/ai/providers/rtzr/options.ts
5
4
  const rtzrOptionsShape = {
6
5
  domain: z$1.enum(["CALL", "GENERAL"]).default("GENERAL"),
@@ -35,7 +34,7 @@ const rtzrTranscriptionProviderOptions = lazySchema(() => zodSchema(z$1.object(r
35
34
  return [rtzrOptionsMap[key], value];
36
35
  }));
37
36
  })));
38
-
39
37
  //#endregion
40
38
  export { rtzrTranscriptionProviderOptions };
41
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsIm5hbWVzIjpbInoiLCJydHpyT3B0aW9uc01hcDogUmVjb3JkPGtleW9mIHR5cGVvZiBydHpyT3B0aW9uc1NoYXBlLCBzdHJpbmc+Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FpL3Byb3ZpZGVycy9ydHpyL29wdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbGF6eVNjaGVtYSwgem9kU2NoZW1hIH0gZnJvbSBcIkBhaS1zZGsvcHJvdmlkZXItdXRpbHNcIjtcbmltcG9ydCB7IHR5cGUgSW5mZXJTY2hlbWEgfSBmcm9tIFwiQGFpLXNkay9wcm92aWRlci11dGlsc1wiO1xuaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIjtcblxuZXhwb3J0IHR5cGUgUnR6clRyYW5zY3JpcHRpb25Nb2RlbElkID0gXCJ3aGlzcGVyXCIgfCBcInNvbW1lcnNcIiB8IChzdHJpbmcgJiB7fSk7XG5cbmNvbnN0IHJ0enJPcHRpb25zU2hhcGUgPSB7XG4gIGRvbWFpbjogei5lbnVtKFtcIkNBTExcIiwgXCJHRU5FUkFMXCJdKS5kZWZhdWx0KFwiR0VORVJBTFwiKSxcbiAgbGFuZ3VhZ2U6IHouc3RyaW5nKCksXG4gIGxhbmd1YWdlQ2FuZGlkYXRlczogei5hcnJheSh6LnN0cmluZygpKS5vcHRpb25hbCgpLFxuICBrZXl3b3Jkczogei51bmlvbihbei5zdHJpbmcoKSwgei5hcnJheSh6LnN0cmluZygpKV0pLm9wdGlvbmFsKCksXG4gIHBhcmFncmFwaFNwbGl0dGVyTWF4OiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIGRpYXJpemF0aW9uOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxuICBpdG46IHouYm9vbGVhbigpLm9wdGlvbmFsKCksXG4gIGRpYXJpemF0aW9uU3BrQ291bnQ6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgZGlzZmx1ZW5jeUZpbHRlcjogei5ib29sZWFuKCkub3B0aW9uYWwoKSxcbiAgcGFyYWdyYXBoU3BsaXR0ZXI6IHouYm9vbGVhbigpLm9wdGlvbmFsKCksXG4gIHByb2Zhbml0eUZpbHRlcjogei5ib29sZWFuKCkub3B0aW9uYWwoKSxcbiAgd29yZFRpbWVzdGFtcDogei5ib29sZWFuKCkub3B0aW9uYWwoKSxcbn07XG5cbmNvbnN0IHJ0enJPcHRpb25zTWFwOiBSZWNvcmQ8a2V5b2YgdHlwZW9mIHJ0enJPcHRpb25zU2hhcGUsIHN0cmluZz4gPSB7XG4gIGRvbWFpbjogXCJkb21haW5cIixcbiAgbGFuZ3VhZ2U6IFwibGFuZ3VhZ2VcIixcbiAgbGFuZ3VhZ2VDYW5kaWRhdGVzOiBcImxhbmd1YWdlX2NhbmRpZGF0ZXNcIixcbiAga2V5d29yZHM6IFwia2V5d29yZHNcIixcbiAgcGFyYWdyYXBoU3BsaXR0ZXJNYXg6IFwicGFyYWdyYXBoX3NwbGl0dGVyLm1heFwiLFxuICBkaWFyaXphdGlvbjogXCJ1c2VfZGlhcml6YXRpb25cIixcbiAgaXRuOiBcInVzZV9pdG5cIixcbiAgZGlhcml6YXRpb25TcGtDb3VudDogXCJkaWFyaXphdGlvbi5zcGtfY291bnRcIixcbiAgZGlzZmx1ZW5jeUZpbHRlcjogXCJ1c2VfZGlzZmx1ZW5jeV9maWx0ZXJcIixcbiAgcGFyYWdyYXBoU3BsaXR0ZXI6IFwidXNlX3BhcmFncmFwaF9zcGxpdHRlclwiLFxuICBwcm9mYW5pdHlGaWx0ZXI6IFwidXNlX3Byb2Zhbml0eV9maWx0ZXJcIixcbiAgd29yZFRpbWVzdGFtcDogXCJ1c2Vfd29yZF90aW1lc3RhbXBcIixcbn07XG5cbi8vIGh0dHBzOi8vZGV2ZWxvcGVycy5ydHpyLmFpL2RvY3Mvc3R0LWZpbGUvXG5leHBvcnQgY29uc3QgcnR6clRyYW5zY3JpcHRpb25Qcm92aWRlck9wdGlvbnMgPSBsYXp5U2NoZW1hKCgpID0+XG4gIHpvZFNjaGVtYShcbiAgICB6Lm9iamVjdChydHpyT3B0aW9uc1NoYXBlKS50cmFuc2Zvcm0oKGl0ZW0pID0+IHtcbiAgICAgIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICAgIE9iamVjdC5lbnRyaWVzKGl0ZW0pLm1hcCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIFtydHpyT3B0aW9uc01hcFtrZXkgYXMga2V5b2YgdHlwZW9mIHJ0enJPcHRpb25zU2hhcGVdLCB2YWx1ZV07XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9KSxcbiAgKSxcbik7XG5cbmV4cG9ydCB0eXBlIFJ0enJUcmFuc2NyaXB0aW9uUHJvdmlkZXJPcHRpb25zID0gSW5mZXJTY2hlbWE8dHlwZW9mIHJ0enJUcmFuc2NyaXB0aW9uUHJvdmlkZXJPcHRpb25zPjtcbiJdLCJtYXBwaW5ncyI6Ijs7OztBQU1BLE1BQU0sbUJBQW1CO0NBQ3ZCLFFBQVFBLElBQUUsS0FBSyxDQUFDLFFBQVEsVUFBVSxDQUFDLENBQUMsUUFBUSxVQUFVO0NBQ3RELFVBQVVBLElBQUUsUUFBUTtDQUNwQixvQkFBb0JBLElBQUUsTUFBTUEsSUFBRSxRQUFRLENBQUMsQ0FBQyxVQUFVO0NBQ2xELFVBQVVBLElBQUUsTUFBTSxDQUFDQSxJQUFFLFFBQVEsRUFBRUEsSUFBRSxNQUFNQSxJQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVO0NBQy9ELHNCQUFzQkEsSUFBRSxRQUFRLENBQUMsVUFBVTtDQUMzQyxhQUFhQSxJQUFFLFNBQVMsQ0FBQyxVQUFVO0NBQ25DLEtBQUtBLElBQUUsU0FBUyxDQUFDLFVBQVU7Q0FDM0IscUJBQXFCQSxJQUFFLFFBQVEsQ0FBQyxVQUFVO0NBQzFDLGtCQUFrQkEsSUFBRSxTQUFTLENBQUMsVUFBVTtDQUN4QyxtQkFBbUJBLElBQUUsU0FBUyxDQUFDLFVBQVU7Q0FDekMsaUJBQWlCQSxJQUFFLFNBQVMsQ0FBQyxVQUFVO0NBQ3ZDLGVBQWVBLElBQUUsU0FBUyxDQUFDLFVBQVU7Q0FDdEM7QUFFRCxNQUFNQyxpQkFBZ0U7Q0FDcEUsUUFBUTtDQUNSLFVBQVU7Q0FDVixvQkFBb0I7Q0FDcEIsVUFBVTtDQUNWLHNCQUFzQjtDQUN0QixhQUFhO0NBQ2IsS0FBSztDQUNMLHFCQUFxQjtDQUNyQixrQkFBa0I7Q0FDbEIsbUJBQW1CO0NBQ25CLGlCQUFpQjtDQUNqQixlQUFlO0NBQ2hCO0FBR0QsTUFBYSxtQ0FBbUMsaUJBQzlDLFVBQ0VELElBQUUsT0FBTyxpQkFBaUIsQ0FBQyxXQUFXLFNBQVM7QUFDN0MsUUFBTyxPQUFPLFlBQ1osT0FBTyxRQUFRLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxXQUFXO0FBQ3pDLFNBQU8sQ0FBQyxlQUFlLE1BQXVDLE1BQU07R0FDcEUsQ0FDSDtFQUNELENBQ0gsQ0FDRiJ9
39
+
40
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsIm5hbWVzIjpbInoiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYWkvcHJvdmlkZXJzL3J0enIvb3B0aW9ucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBsYXp5U2NoZW1hLCB6b2RTY2hlbWEgfSBmcm9tIFwiQGFpLXNkay9wcm92aWRlci11dGlsc1wiO1xuaW1wb3J0IHsgdHlwZSBJbmZlclNjaGVtYSB9IGZyb20gXCJAYWktc2RrL3Byb3ZpZGVyLXV0aWxzXCI7XG5pbXBvcnQgeyB6IH0gZnJvbSBcInpvZFwiO1xuXG5leHBvcnQgdHlwZSBSdHpyVHJhbnNjcmlwdGlvbk1vZGVsSWQgPSBcIndoaXNwZXJcIiB8IFwic29tbWVyc1wiIHwgKHN0cmluZyAmIHt9KTtcblxuY29uc3QgcnR6ck9wdGlvbnNTaGFwZSA9IHtcbiAgZG9tYWluOiB6LmVudW0oW1wiQ0FMTFwiLCBcIkdFTkVSQUxcIl0pLmRlZmF1bHQoXCJHRU5FUkFMXCIpLFxuICBsYW5ndWFnZTogei5zdHJpbmcoKSxcbiAgbGFuZ3VhZ2VDYW5kaWRhdGVzOiB6LmFycmF5KHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gIGtleXdvcmRzOiB6LnVuaW9uKFt6LnN0cmluZygpLCB6LmFycmF5KHouc3RyaW5nKCkpXSkub3B0aW9uYWwoKSxcbiAgcGFyYWdyYXBoU3BsaXR0ZXJNYXg6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgZGlhcml6YXRpb246IHouYm9vbGVhbigpLm9wdGlvbmFsKCksXG4gIGl0bjogei5ib29sZWFuKCkub3B0aW9uYWwoKSxcbiAgZGlhcml6YXRpb25TcGtDb3VudDogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICBkaXNmbHVlbmN5RmlsdGVyOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxuICBwYXJhZ3JhcGhTcGxpdHRlcjogei5ib29sZWFuKCkub3B0aW9uYWwoKSxcbiAgcHJvZmFuaXR5RmlsdGVyOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxuICB3b3JkVGltZXN0YW1wOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxufTtcblxuY29uc3QgcnR6ck9wdGlvbnNNYXA6IFJlY29yZDxrZXlvZiB0eXBlb2YgcnR6ck9wdGlvbnNTaGFwZSwgc3RyaW5nPiA9IHtcbiAgZG9tYWluOiBcImRvbWFpblwiLFxuICBsYW5ndWFnZTogXCJsYW5ndWFnZVwiLFxuICBsYW5ndWFnZUNhbmRpZGF0ZXM6IFwibGFuZ3VhZ2VfY2FuZGlkYXRlc1wiLFxuICBrZXl3b3JkczogXCJrZXl3b3Jkc1wiLFxuICBwYXJhZ3JhcGhTcGxpdHRlck1heDogXCJwYXJhZ3JhcGhfc3BsaXR0ZXIubWF4XCIsXG4gIGRpYXJpemF0aW9uOiBcInVzZV9kaWFyaXphdGlvblwiLFxuICBpdG46IFwidXNlX2l0blwiLFxuICBkaWFyaXphdGlvblNwa0NvdW50OiBcImRpYXJpemF0aW9uLnNwa19jb3VudFwiLFxuICBkaXNmbHVlbmN5RmlsdGVyOiBcInVzZV9kaXNmbHVlbmN5X2ZpbHRlclwiLFxuICBwYXJhZ3JhcGhTcGxpdHRlcjogXCJ1c2VfcGFyYWdyYXBoX3NwbGl0dGVyXCIsXG4gIHByb2Zhbml0eUZpbHRlcjogXCJ1c2VfcHJvZmFuaXR5X2ZpbHRlclwiLFxuICB3b3JkVGltZXN0YW1wOiBcInVzZV93b3JkX3RpbWVzdGFtcFwiLFxufTtcblxuLy8gaHR0cHM6Ly9kZXZlbG9wZXJzLnJ0enIuYWkvZG9jcy9zdHQtZmlsZS9cbmV4cG9ydCBjb25zdCBydHpyVHJhbnNjcmlwdGlvblByb3ZpZGVyT3B0aW9ucyA9IGxhenlTY2hlbWEoKCkgPT5cbiAgem9kU2NoZW1hKFxuICAgIHoub2JqZWN0KHJ0enJPcHRpb25zU2hhcGUpLnRyYW5zZm9ybSgoaXRlbSkgPT4ge1xuICAgICAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgICAgT2JqZWN0LmVudHJpZXMoaXRlbSkubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICByZXR1cm4gW3J0enJPcHRpb25zTWFwW2tleSBhcyBrZXlvZiB0eXBlb2YgcnR6ck9wdGlvbnNTaGFwZV0sIHZhbHVlXTtcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH0pLFxuICApLFxuKTtcblxuZXhwb3J0IHR5cGUgUnR6clRyYW5zY3JpcHRpb25Qcm92aWRlck9wdGlvbnMgPSBJbmZlclNjaGVtYTx0eXBlb2YgcnR6clRyYW5zY3JpcHRpb25Qcm92aWRlck9wdGlvbnM+O1xuIl0sIm1hcHBpbmdzIjoiOzs7QUFNQSxNQUFNLG1CQUFtQjtDQUN2QixRQUFRQSxJQUFFLEtBQUssQ0FBQyxRQUFRLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxTQUFTO0NBQ3JELFVBQVVBLElBQUUsT0FBTztDQUNuQixvQkFBb0JBLElBQUUsTUFBTUEsSUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVM7Q0FDakQsVUFBVUEsSUFBRSxNQUFNLENBQUNBLElBQUUsT0FBTyxHQUFHQSxJQUFFLE1BQU1BLElBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztDQUM5RCxzQkFBc0JBLElBQUUsT0FBTyxDQUFDLENBQUMsU0FBUztDQUMxQyxhQUFhQSxJQUFFLFFBQVEsQ0FBQyxDQUFDLFNBQVM7Q0FDbEMsS0FBS0EsSUFBRSxRQUFRLENBQUMsQ0FBQyxTQUFTO0NBQzFCLHFCQUFxQkEsSUFBRSxPQUFPLENBQUMsQ0FBQyxTQUFTO0NBQ3pDLGtCQUFrQkEsSUFBRSxRQUFRLENBQUMsQ0FBQyxTQUFTO0NBQ3ZDLG1CQUFtQkEsSUFBRSxRQUFRLENBQUMsQ0FBQyxTQUFTO0NBQ3hDLGlCQUFpQkEsSUFBRSxRQUFRLENBQUMsQ0FBQyxTQUFTO0NBQ3RDLGVBQWVBLElBQUUsUUFBUSxDQUFDLENBQUMsU0FBUztBQUN0QztBQUVBLE1BQU0saUJBQWdFO0NBQ3BFLFFBQVE7Q0FDUixVQUFVO0NBQ1Ysb0JBQW9CO0NBQ3BCLFVBQVU7Q0FDVixzQkFBc0I7Q0FDdEIsYUFBYTtDQUNiLEtBQUs7Q0FDTCxxQkFBcUI7Q0FDckIsa0JBQWtCO0NBQ2xCLG1CQUFtQjtDQUNuQixpQkFBaUI7Q0FDakIsZUFBZTtBQUNqQjtBQUdBLE1BQWEsbUNBQW1DLGlCQUM5QyxVQUNFQSxJQUFFLE9BQU8sZ0JBQWdCLENBQUMsQ0FBQyxXQUFXLFNBQVM7Q0FDN0MsT0FBTyxPQUFPLFlBQ1osT0FBTyxRQUFRLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLFdBQVc7RUFDekMsT0FBTyxDQUFDLGVBQWUsTUFBdUMsS0FBSztDQUNyRSxDQUFDLENBQ0g7QUFDRixDQUFDLENBQ0gsQ0FDRiJ9
@@ -1,7 +1,6 @@
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
-
5
4
  //#region src/ai/providers/rtzr/provider.ts
6
5
  function createRtzr(options = {}) {
7
6
  const baseURL = withoutTrailingSlash(loadOptionalSetting({
@@ -50,7 +49,7 @@ function createRtzr(options = {}) {
50
49
  return provider;
51
50
  }
52
51
  const rtzr = createRtzr();
53
-
54
52
  //#endregion
55
53
  export { createRtzr, rtzr };
56
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXIuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FpL3Byb3ZpZGVycy9ydHpyL3Byb3ZpZGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5vU3VjaE1vZGVsRXJyb3IgfSBmcm9tIFwiQGFpLXNkay9wcm92aWRlclwiO1xuaW1wb3J0IHsgdHlwZSBQcm92aWRlclYzLCB0eXBlIFRyYW5zY3JpcHRpb25Nb2RlbFYzIH0gZnJvbSBcIkBhaS1zZGsvcHJvdmlkZXJcIjtcbmltcG9ydCB7XG4gIGxvYWRBcGlLZXksXG4gIGxvYWRPcHRpb25hbFNldHRpbmcsXG4gIHdpdGhvdXRUcmFpbGluZ1NsYXNoLFxuICB3aXRoVXNlckFnZW50U3VmZml4LFxufSBmcm9tIFwiQGFpLXNkay9wcm92aWRlci11dGlsc1wiO1xuaW1wb3J0IHsgdHlwZSBGZXRjaEZ1bmN0aW9uIH0gZnJvbSBcIkBhaS1zZGsvcHJvdmlkZXItdXRpbHNcIjtcblxuaW1wb3J0IHsgUnR6clRyYW5zY3JpcHRpb25Nb2RlbCB9IGZyb20gXCIuL21vZGVsXCI7XG5pbXBvcnQgeyB0eXBlIFJ0enJUcmFuc2NyaXB0aW9uTW9kZWxJZCB9IGZyb20gXCIuL29wdGlvbnNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBSdHpyUHJvdmlkZXIgZXh0ZW5kcyBQcm92aWRlclYzIHtcbiAgKG1vZGVsSWQ6IFJ0enJUcmFuc2NyaXB0aW9uTW9kZWxJZCk6IFRyYW5zY3JpcHRpb25Nb2RlbFYzO1xuICB0cmFuc2NyaXB0aW9uKG1vZGVsSWQ6IFJ0enJUcmFuc2NyaXB0aW9uTW9kZWxJZCk6IFRyYW5zY3JpcHRpb25Nb2RlbFYzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJ0enJQcm92aWRlclNldHRpbmdzIHtcbiAgYmFzZVVSTD86IHN0cmluZztcbiAgY2xpZW50SWQ/OiBzdHJpbmc7XG4gIGNsaWVudFNlY3JldD86IHN0cmluZztcbiAgaGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGZldGNoPzogRmV0Y2hGdW5jdGlvbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVJ0enIob3B0aW9uczogUnR6clByb3ZpZGVyU2V0dGluZ3MgPSB7fSk6IFJ0enJQcm92aWRlciB7XG4gIGNvbnN0IGJhc2VVUkwgPVxuICAgIHdpdGhvdXRUcmFpbGluZ1NsYXNoKFxuICAgICAgbG9hZE9wdGlvbmFsU2V0dGluZyh7XG4gICAgICAgIHNldHRpbmdWYWx1ZTogb3B0aW9ucy5iYXNlVVJMLFxuICAgICAgICBlbnZpcm9ubWVudFZhcmlhYmxlTmFtZTogXCJSVFpSX0JBU0VfVVJMXCIsXG4gICAgICB9KSxcbiAgICApID8/IFwiaHR0cHM6Ly9vcGVuYXBpLnZpdG8uYWkvdjFcIjtcblxuICBjb25zdCBwcm92aWRlck5hbWUgPSBvcHRpb25zLm5hbWUgPz8gXCJydHpyXCI7XG5cbiAgY29uc3QgZ2V0SGVhZGVycyA9ICgpID0+XG4gICAgd2l0aFVzZXJBZ2VudFN1ZmZpeChcbiAgICAgIHtcbiAgICAgICAgLi4ub3B0aW9ucy5oZWFkZXJzLFxuICAgICAgfSxcbiAgICAgIGBjYXJ0YW5vdmEtYWkvcnR6ci1hcGktcHJvdmlkZXJgLFxuICAgICk7XG5cbiAgY29uc3QgY3JlYXRlVHJhbnNjcmlwdGlvbk1vZGVsID0gKG1vZGVsSWQ6IFJ0enJUcmFuc2NyaXB0aW9uTW9kZWxJZCkgPT4ge1xuICAgIGNvbnN0IGNsaWVudElkID0gbG9hZEFwaUtleSh7XG4gICAgICBhcGlLZXk6IG9wdGlvbnMuY2xpZW50SWQsXG4gICAgICBlbnZpcm9ubWVudFZhcmlhYmxlTmFtZTogXCJSVFpSX0NMSUVOVF9JRFwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiUlRaUlwiLFxuICAgIH0pO1xuXG4gICAgY29uc3QgY2xpZW50U2VjcmV0ID0gbG9hZEFwaUtleSh7XG4gICAgICBhcGlLZXk6IG9wdGlvbnMuY2xpZW50U2VjcmV0LFxuICAgICAgZW52aXJvbm1lbnRWYXJpYWJsZU5hbWU6IFwiUlRaUl9DTElFTlRfU0VDUkVUXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJSVFpSXCIsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gbmV3IFJ0enJUcmFuc2NyaXB0aW9uTW9kZWwobW9kZWxJZCwge1xuICAgICAgcHJvdmlkZXI6IGAke3Byb3ZpZGVyTmFtZX0udHJhbnNjcmlwdGlvbmAsXG4gICAgICBhdXRoOiB7XG4gICAgICAgIGNsaWVudElkLFxuICAgICAgICBjbGllbnRTZWNyZXQsXG4gICAgICB9LFxuICAgICAgdXJsOiAoeyBwYXRoIH0pID0+IGAke2Jhc2VVUkx9JHtwYXRofWAsXG4gICAgICBoZWFkZXJzOiBnZXRIZWFkZXJzLFxuICAgICAgZmV0Y2g6IG9wdGlvbnMuZmV0Y2gsXG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgcHJvdmlkZXIgPSAobW9kZWxJZDogUnR6clRyYW5zY3JpcHRpb25Nb2RlbElkKSA9PiBjcmVhdGVUcmFuc2NyaXB0aW9uTW9kZWwobW9kZWxJZCk7XG5cbiAgcHJvdmlkZXIuc3BlY2lmaWNhdGlvblZlcnNpb24gPSBcInYzXCIgYXMgY29uc3Q7XG4gIHByb3ZpZGVyLnRyYW5zY3JpcHRpb24gPSBjcmVhdGVUcmFuc2NyaXB0aW9uTW9kZWw7XG4gIHByb3ZpZGVyLnRyYW5zY3JpcHRpb25Nb2RlbCA9IGNyZWF0ZVRyYW5zY3JpcHRpb25Nb2RlbDtcblxuICBjb25zdCBoYW5kbGVVbnN1cHBvcnRlZFR5cGVzID0gKG1vZGVsVHlwZTogXCJsYW5ndWFnZU1vZGVsXCIgfCBcImVtYmVkZGluZ01vZGVsXCIgfCBcImltYWdlTW9kZWxcIikgPT4ge1xuICAgIHJldHVybiAobW9kZWxJZDogc3RyaW5nKSA9PiB7XG4gICAgICB0aHJvdyBuZXcgTm9TdWNoTW9kZWxFcnJvcih7XG4gICAgICAgIG1vZGVsSWQsXG4gICAgICAgIG1vZGVsVHlwZSxcbiAgICAgIH0pO1xuICAgIH07XG4gIH07XG5cbiAgcHJvdmlkZXIubGFuZ3VhZ2VNb2RlbCA9IGhhbmRsZVVuc3VwcG9ydGVkVHlwZXMoXCJsYW5ndWFnZU1vZGVsXCIpO1xuICBwcm92aWRlci5lbWJlZGRpbmdNb2RlbCA9IGhhbmRsZVVuc3VwcG9ydGVkVHlwZXMoXCJlbWJlZGRpbmdNb2RlbFwiKTtcbiAgcHJvdmlkZXIuaW1hZ2VNb2RlbCA9IGhhbmRsZVVuc3VwcG9ydGVkVHlwZXMoXCJpbWFnZU1vZGVsXCIpO1xuICByZXR1cm4gcHJvdmlkZXIgYXMgUnR6clByb3ZpZGVyO1xufVxuXG5leHBvcnQgY29uc3QgcnR6ciA9IGNyZWF0ZVJ0enIoKTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUEyQkEsU0FBZ0IsV0FBVyxVQUFnQyxFQUFFLEVBQWdCO0NBQzNFLE1BQU0sVUFDSixxQkFDRSxvQkFBb0I7RUFDbEIsY0FBYyxRQUFRO0VBQ3RCLHlCQUF5QjtFQUMxQixDQUFDLENBQ0gsSUFBSTtDQUVQLE1BQU0sZUFBZSxRQUFRLFFBQVE7Q0FFckMsTUFBTSxtQkFDSixvQkFDRSxFQUNFLEdBQUcsUUFBUSxTQUNaLEVBQ0QsaUNBQ0Q7Q0FFSCxNQUFNLDRCQUE0QixZQUFzQztFQUN0RSxNQUFNLFdBQVcsV0FBVztHQUMxQixRQUFRLFFBQVE7R0FDaEIseUJBQXlCO0dBQ3pCLGFBQWE7R0FDZCxDQUFDO0VBRUYsTUFBTSxlQUFlLFdBQVc7R0FDOUIsUUFBUSxRQUFRO0dBQ2hCLHlCQUF5QjtHQUN6QixhQUFhO0dBQ2QsQ0FBQztBQUVGLFNBQU8sSUFBSSx1QkFBdUIsU0FBUztHQUN6QyxVQUFVLEdBQUcsYUFBYTtHQUMxQixNQUFNO0lBQ0o7SUFDQTtJQUNEO0dBQ0QsTUFBTSxFQUFFLFdBQVcsR0FBRyxVQUFVO0dBQ2hDLFNBQVM7R0FDVCxPQUFPLFFBQVE7R0FDaEIsQ0FBQzs7Q0FHSixNQUFNLFlBQVksWUFBc0MseUJBQXlCLFFBQVE7QUFFekYsVUFBUyx1QkFBdUI7QUFDaEMsVUFBUyxnQkFBZ0I7QUFDekIsVUFBUyxxQkFBcUI7Q0FFOUIsTUFBTSwwQkFBMEIsY0FBaUU7QUFDL0YsVUFBUSxZQUFvQjtBQUMxQixTQUFNLElBQUksaUJBQWlCO0lBQ3pCO0lBQ0E7SUFDRCxDQUFDOzs7QUFJTixVQUFTLGdCQUFnQix1QkFBdUIsZ0JBQWdCO0FBQ2hFLFVBQVMsaUJBQWlCLHVCQUF1QixpQkFBaUI7QUFDbEUsVUFBUyxhQUFhLHVCQUF1QixhQUFhO0FBQzFELFFBQU87O0FBR1QsTUFBYSxPQUFPLFlBQVkifQ==
54
+
55
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXIuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FpL3Byb3ZpZGVycy9ydHpyL3Byb3ZpZGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5vU3VjaE1vZGVsRXJyb3IgfSBmcm9tIFwiQGFpLXNkay9wcm92aWRlclwiO1xuaW1wb3J0IHsgdHlwZSBQcm92aWRlclYzLCB0eXBlIFRyYW5zY3JpcHRpb25Nb2RlbFYzIH0gZnJvbSBcIkBhaS1zZGsvcHJvdmlkZXJcIjtcbmltcG9ydCB7XG4gIGxvYWRBcGlLZXksXG4gIGxvYWRPcHRpb25hbFNldHRpbmcsXG4gIHdpdGhvdXRUcmFpbGluZ1NsYXNoLFxuICB3aXRoVXNlckFnZW50U3VmZml4LFxufSBmcm9tIFwiQGFpLXNkay9wcm92aWRlci11dGlsc1wiO1xuaW1wb3J0IHsgdHlwZSBGZXRjaEZ1bmN0aW9uIH0gZnJvbSBcIkBhaS1zZGsvcHJvdmlkZXItdXRpbHNcIjtcblxuaW1wb3J0IHsgUnR6clRyYW5zY3JpcHRpb25Nb2RlbCB9IGZyb20gXCIuL21vZGVsXCI7XG5pbXBvcnQgeyB0eXBlIFJ0enJUcmFuc2NyaXB0aW9uTW9kZWxJZCB9IGZyb20gXCIuL29wdGlvbnNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBSdHpyUHJvdmlkZXIgZXh0ZW5kcyBQcm92aWRlclYzIHtcbiAgKG1vZGVsSWQ6IFJ0enJUcmFuc2NyaXB0aW9uTW9kZWxJZCk6IFRyYW5zY3JpcHRpb25Nb2RlbFYzO1xuICB0cmFuc2NyaXB0aW9uKG1vZGVsSWQ6IFJ0enJUcmFuc2NyaXB0aW9uTW9kZWxJZCk6IFRyYW5zY3JpcHRpb25Nb2RlbFYzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJ0enJQcm92aWRlclNldHRpbmdzIHtcbiAgYmFzZVVSTD86IHN0cmluZztcbiAgY2xpZW50SWQ/OiBzdHJpbmc7XG4gIGNsaWVudFNlY3JldD86IHN0cmluZztcbiAgaGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGZldGNoPzogRmV0Y2hGdW5jdGlvbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVJ0enIob3B0aW9uczogUnR6clByb3ZpZGVyU2V0dGluZ3MgPSB7fSk6IFJ0enJQcm92aWRlciB7XG4gIGNvbnN0IGJhc2VVUkwgPVxuICAgIHdpdGhvdXRUcmFpbGluZ1NsYXNoKFxuICAgICAgbG9hZE9wdGlvbmFsU2V0dGluZyh7XG4gICAgICAgIHNldHRpbmdWYWx1ZTogb3B0aW9ucy5iYXNlVVJMLFxuICAgICAgICBlbnZpcm9ubWVudFZhcmlhYmxlTmFtZTogXCJSVFpSX0JBU0VfVVJMXCIsXG4gICAgICB9KSxcbiAgICApID8/IFwiaHR0cHM6Ly9vcGVuYXBpLnZpdG8uYWkvdjFcIjtcblxuICBjb25zdCBwcm92aWRlck5hbWUgPSBvcHRpb25zLm5hbWUgPz8gXCJydHpyXCI7XG5cbiAgY29uc3QgZ2V0SGVhZGVycyA9ICgpID0+XG4gICAgd2l0aFVzZXJBZ2VudFN1ZmZpeChcbiAgICAgIHtcbiAgICAgICAgLi4ub3B0aW9ucy5oZWFkZXJzLFxuICAgICAgfSxcbiAgICAgIGBjYXJ0YW5vdmEtYWkvcnR6ci1hcGktcHJvdmlkZXJgLFxuICAgICk7XG5cbiAgY29uc3QgY3JlYXRlVHJhbnNjcmlwdGlvbk1vZGVsID0gKG1vZGVsSWQ6IFJ0enJUcmFuc2NyaXB0aW9uTW9kZWxJZCkgPT4ge1xuICAgIGNvbnN0IGNsaWVudElkID0gbG9hZEFwaUtleSh7XG4gICAgICBhcGlLZXk6IG9wdGlvbnMuY2xpZW50SWQsXG4gICAgICBlbnZpcm9ubWVudFZhcmlhYmxlTmFtZTogXCJSVFpSX0NMSUVOVF9JRFwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiUlRaUlwiLFxuICAgIH0pO1xuXG4gICAgY29uc3QgY2xpZW50U2VjcmV0ID0gbG9hZEFwaUtleSh7XG4gICAgICBhcGlLZXk6IG9wdGlvbnMuY2xpZW50U2VjcmV0LFxuICAgICAgZW52aXJvbm1lbnRWYXJpYWJsZU5hbWU6IFwiUlRaUl9DTElFTlRfU0VDUkVUXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJSVFpSXCIsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gbmV3IFJ0enJUcmFuc2NyaXB0aW9uTW9kZWwobW9kZWxJZCwge1xuICAgICAgcHJvdmlkZXI6IGAke3Byb3ZpZGVyTmFtZX0udHJhbnNjcmlwdGlvbmAsXG4gICAgICBhdXRoOiB7XG4gICAgICAgIGNsaWVudElkLFxuICAgICAgICBjbGllbnRTZWNyZXQsXG4gICAgICB9LFxuICAgICAgdXJsOiAoeyBwYXRoIH0pID0+IGAke2Jhc2VVUkx9JHtwYXRofWAsXG4gICAgICBoZWFkZXJzOiBnZXRIZWFkZXJzLFxuICAgICAgZmV0Y2g6IG9wdGlvbnMuZmV0Y2gsXG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgcHJvdmlkZXIgPSAobW9kZWxJZDogUnR6clRyYW5zY3JpcHRpb25Nb2RlbElkKSA9PiBjcmVhdGVUcmFuc2NyaXB0aW9uTW9kZWwobW9kZWxJZCk7XG5cbiAgcHJvdmlkZXIuc3BlY2lmaWNhdGlvblZlcnNpb24gPSBcInYzXCIgYXMgY29uc3Q7XG4gIHByb3ZpZGVyLnRyYW5zY3JpcHRpb24gPSBjcmVhdGVUcmFuc2NyaXB0aW9uTW9kZWw7XG4gIHByb3ZpZGVyLnRyYW5zY3JpcHRpb25Nb2RlbCA9IGNyZWF0ZVRyYW5zY3JpcHRpb25Nb2RlbDtcblxuICBjb25zdCBoYW5kbGVVbnN1cHBvcnRlZFR5cGVzID0gKG1vZGVsVHlwZTogXCJsYW5ndWFnZU1vZGVsXCIgfCBcImVtYmVkZGluZ01vZGVsXCIgfCBcImltYWdlTW9kZWxcIikgPT4ge1xuICAgIHJldHVybiAobW9kZWxJZDogc3RyaW5nKSA9PiB7XG4gICAgICB0aHJvdyBuZXcgTm9TdWNoTW9kZWxFcnJvcih7XG4gICAgICAgIG1vZGVsSWQsXG4gICAgICAgIG1vZGVsVHlwZSxcbiAgICAgIH0pO1xuICAgIH07XG4gIH07XG5cbiAgcHJvdmlkZXIubGFuZ3VhZ2VNb2RlbCA9IGhhbmRsZVVuc3VwcG9ydGVkVHlwZXMoXCJsYW5ndWFnZU1vZGVsXCIpO1xuICBwcm92aWRlci5lbWJlZGRpbmdNb2RlbCA9IGhhbmRsZVVuc3VwcG9ydGVkVHlwZXMoXCJlbWJlZGRpbmdNb2RlbFwiKTtcbiAgcHJvdmlkZXIuaW1hZ2VNb2RlbCA9IGhhbmRsZVVuc3VwcG9ydGVkVHlwZXMoXCJpbWFnZU1vZGVsXCIpO1xuICByZXR1cm4gcHJvdmlkZXIgYXMgUnR6clByb3ZpZGVyO1xufVxuXG5leHBvcnQgY29uc3QgcnR6ciA9IGNyZWF0ZVJ0enIoKTtcbiJdLCJtYXBwaW5ncyI6Ijs7OztBQTJCQSxTQUFnQixXQUFXLFVBQWdDLENBQUMsR0FBaUI7Q0FDM0UsTUFBTSxVQUNKLHFCQUNFLG9CQUFvQjtFQUNsQixjQUFjLFFBQVE7RUFDdEIseUJBQXlCO0NBQzNCLENBQUMsQ0FDSCxLQUFLO0NBRVAsTUFBTSxlQUFlLFFBQVEsUUFBUTtDQUVyQyxNQUFNLG1CQUNKLG9CQUNFLEVBQ0UsR0FBRyxRQUFRLFFBQ2IsR0FDQSxnQ0FDRjtDQUVGLE1BQU0sNEJBQTRCLFlBQXNDO0VBQ3RFLE1BQU0sV0FBVyxXQUFXO0dBQzFCLFFBQVEsUUFBUTtHQUNoQix5QkFBeUI7R0FDekIsYUFBYTtFQUNmLENBQUM7RUFFRCxNQUFNLGVBQWUsV0FBVztHQUM5QixRQUFRLFFBQVE7R0FDaEIseUJBQXlCO0dBQ3pCLGFBQWE7RUFDZixDQUFDO0VBRUQsT0FBTyxJQUFJLHVCQUF1QixTQUFTO0dBQ3pDLFVBQVUsR0FBRyxhQUFhO0dBQzFCLE1BQU07SUFDSjtJQUNBO0dBQ0Y7R0FDQSxNQUFNLEVBQUUsV0FBVyxHQUFHLFVBQVU7R0FDaEMsU0FBUztHQUNULE9BQU8sUUFBUTtFQUNqQixDQUFDO0NBQ0g7Q0FFQSxNQUFNLFlBQVksWUFBc0MseUJBQXlCLE9BQU87Q0FFeEYsU0FBUyx1QkFBdUI7Q0FDaEMsU0FBUyxnQkFBZ0I7Q0FDekIsU0FBUyxxQkFBcUI7Q0FFOUIsTUFBTSwwQkFBMEIsY0FBaUU7RUFDL0YsUUFBUSxZQUFvQjtHQUMxQixNQUFNLElBQUksaUJBQWlCO0lBQ3pCO0lBQ0E7R0FDRixDQUFDO0VBQ0g7Q0FDRjtDQUVBLFNBQVMsZ0JBQWdCLHVCQUF1QixlQUFlO0NBQy9ELFNBQVMsaUJBQWlCLHVCQUF1QixnQkFBZ0I7Q0FDakUsU0FBUyxhQUFhLHVCQUF1QixZQUFZO0NBQ3pELE9BQU87QUFDVDtBQUVBLE1BQWEsT0FBTyxXQUFXIn0=
@@ -1,23 +1,18 @@
1
1
  import { extractResponseHeaders, isAbortError, withUserAgentSuffix } from "@ai-sdk/provider-utils";
2
2
  import { APICallError } from "@ai-sdk/provider";
3
-
4
3
  //#region src/ai/providers/rtzr/utils.ts
5
4
  const FETCH_FAILED_ERROR_MESSAGES = ["fetch failed", "failed to fetch"];
6
5
  function handleFetchError({ error, url, requestBodyValues }) {
7
- if (isAbortError(error)) {
8
- return error;
9
- }
6
+ if (isAbortError(error)) return error;
10
7
  if (error instanceof TypeError && FETCH_FAILED_ERROR_MESSAGES.includes(error.message.toLowerCase())) {
11
8
  const cause = error.cause;
12
- if (cause) {
13
- return new APICallError({
14
- message: `Cannot connect to API: ${cause.message}`,
15
- cause,
16
- url,
17
- requestBodyValues,
18
- isRetryable: true
19
- });
20
- }
9
+ if (cause) return new APICallError({
10
+ message: `Cannot connect to API: ${cause.message}`,
11
+ cause,
12
+ url,
13
+ requestBodyValues,
14
+ isRetryable: true
15
+ });
21
16
  }
22
17
  return error;
23
18
  }
@@ -39,9 +34,7 @@ const getFromApi = async ({ url, headers = {}, successfulResponseHandler, failed
39
34
  requestBodyValues: {}
40
35
  });
41
36
  } catch (error) {
42
- if (isAbortError(error) || APICallError.isInstance(error)) {
43
- throw error;
44
- }
37
+ if (isAbortError(error) || APICallError.isInstance(error)) throw error;
45
38
  throw new APICallError({
46
39
  message: "Failed to process error response",
47
40
  cause: error,
@@ -61,9 +54,7 @@ const getFromApi = async ({ url, headers = {}, successfulResponseHandler, failed
61
54
  });
62
55
  } catch (error) {
63
56
  if (error instanceof Error) {
64
- if (isAbortError(error) || APICallError.isInstance(error)) {
65
- throw error;
66
- }
57
+ if (isAbortError(error) || APICallError.isInstance(error)) throw error;
67
58
  }
68
59
  throw new APICallError({
69
60
  message: "Failed to process successful response",
@@ -82,7 +73,7 @@ const getFromApi = async ({ url, headers = {}, successfulResponseHandler, failed
82
73
  });
83
74
  }
84
75
  };
85
-
86
76
  //#endregion
87
77
  export { getFromApi, handleFetchError };
88
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJuYW1lcyI6WyJlcnJvckluZm9ybWF0aW9uOiB7XG4gICAgICAgIHZhbHVlOiBFcnJvcjtcbiAgICAgICAgcmVzcG9uc2VIZWFkZXJzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IHVuZGVmaW5lZDtcbiAgICAgIH0iXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYWkvcHJvdmlkZXJzL3J0enIvdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBJQ2FsbEVycm9yIH0gZnJvbSBcIkBhaS1zZGsvcHJvdmlkZXJcIjtcbmltcG9ydCB7IGV4dHJhY3RSZXNwb25zZUhlYWRlcnMsIGlzQWJvcnRFcnJvciwgd2l0aFVzZXJBZ2VudFN1ZmZpeCB9IGZyb20gXCJAYWktc2RrL3Byb3ZpZGVyLXV0aWxzXCI7XG5pbXBvcnQgeyB0eXBlIEZldGNoRnVuY3Rpb24sIHR5cGUgUmVzcG9uc2VIYW5kbGVyIH0gZnJvbSBcIkBhaS1zZGsvcHJvdmlkZXItdXRpbHNcIjtcblxuY29uc3QgRkVUQ0hfRkFJTEVEX0VSUk9SX01FU1NBR0VTID0gW1wiZmV0Y2ggZmFpbGVkXCIsIFwiZmFpbGVkIHRvIGZldGNoXCJdO1xuXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlRmV0Y2hFcnJvcih7XG4gIGVycm9yLFxuICB1cmwsXG4gIHJlcXVlc3RCb2R5VmFsdWVzLFxufToge1xuICBlcnJvcjogdW5rbm93bjtcbiAgdXJsOiBzdHJpbmc7XG4gIHJlcXVlc3RCb2R5VmFsdWVzOiB1bmtub3duO1xufSkge1xuICBpZiAoaXNBYm9ydEVycm9yKGVycm9yKSkge1xuICAgIHJldHVybiBlcnJvcjtcbiAgfVxuXG4gIGlmIChcbiAgICBlcnJvciBpbnN0YW5jZW9mIFR5cGVFcnJvciAmJlxuICAgIEZFVENIX0ZBSUxFRF9FUlJPUl9NRVNTQUdFUy5pbmNsdWRlcyhlcnJvci5tZXNzYWdlLnRvTG93ZXJDYXNlKCkpXG4gICkge1xuICAgIGNvbnN0IGNhdXNlID0gKGVycm9yIGFzIHsgY2F1c2U/OiBFcnJvciB9KS5jYXVzZTtcblxuICAgIGlmIChjYXVzZSkge1xuICAgICAgcmV0dXJuIG5ldyBBUElDYWxsRXJyb3Ioe1xuICAgICAgICBtZXNzYWdlOiBgQ2Fubm90IGNvbm5lY3QgdG8gQVBJOiAke2NhdXNlLm1lc3NhZ2V9YCxcbiAgICAgICAgY2F1c2UsXG4gICAgICAgIHVybCxcbiAgICAgICAgcmVxdWVzdEJvZHlWYWx1ZXMsXG4gICAgICAgIGlzUmV0cnlhYmxlOiB0cnVlLCAvLyByZXRyeSB3aGVuIG5ldHdvcmsgZXJyb3JcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBlcnJvcjtcbn1cblxuLy8gdXNlIGZ1bmN0aW9uIHRvIGFsbG93IGZvciBtb2NraW5nIGluIHRlc3RzOlxuY29uc3QgZ2V0T3JpZ2luYWxGZXRjaCA9ICgpID0+IGdsb2JhbFRoaXMuZmV0Y2g7XG5cbmV4cG9ydCBjb25zdCBnZXRGcm9tQXBpID0gYXN5bmMgPFQ+KHtcbiAgdXJsLFxuICBoZWFkZXJzID0ge30sXG4gIHN1Y2Nlc3NmdWxSZXNwb25zZUhhbmRsZXIsXG4gIGZhaWxlZFJlc3BvbnNlSGFuZGxlcixcbiAgYWJvcnRTaWduYWwsXG4gIGZldGNoID0gZ2V0T3JpZ2luYWxGZXRjaCgpLFxufToge1xuICB1cmw6IHN0cmluZztcbiAgaGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD47XG4gIGZhaWxlZFJlc3BvbnNlSGFuZGxlcjogUmVzcG9uc2VIYW5kbGVyPEVycm9yPjtcbiAgc3VjY2Vzc2Z1bFJlc3BvbnNlSGFuZGxlcjogUmVzcG9uc2VIYW5kbGVyPFQ+O1xuICBhYm9ydFNpZ25hbD86IEFib3J0U2lnbmFsO1xuICBmZXRjaD86IEZldGNoRnVuY3Rpb247XG59KSA9PiB7XG4gIHRyeSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwsIHtcbiAgICAgIG1ldGhvZDogXCJHRVRcIixcbiAgICAgIGhlYWRlcnM6IHdpdGhVc2VyQWdlbnRTdWZmaXgoaGVhZGVycywgYGNhcnRhbm92YS1haS9ydHpyLWFwaS1wcm92aWRlcmApLFxuICAgICAgc2lnbmFsOiBhYm9ydFNpZ25hbCxcbiAgICB9KTtcblxuICAgIGNvbnN0IHJlc3BvbnNlSGVhZGVycyA9IGV4dHJhY3RSZXNwb25zZUhlYWRlcnMocmVzcG9uc2UpO1xuXG4gICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgbGV0IGVycm9ySW5mb3JtYXRpb246IHtcbiAgICAgICAgdmFsdWU6IEVycm9yO1xuICAgICAgICByZXNwb25zZUhlYWRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHwgdW5kZWZpbmVkO1xuICAgICAgfTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgZXJyb3JJbmZvcm1hdGlvbiA9IGF3YWl0IGZhaWxlZFJlc3BvbnNlSGFuZGxlcih7XG4gICAgICAgICAgcmVzcG9uc2UsXG4gICAgICAgICAgdXJsLFxuICAgICAgICAgIHJlcXVlc3RCb2R5VmFsdWVzOiB7fSxcbiAgICAgICAgfSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBpZiAoaXNBYm9ydEVycm9yKGVycm9yKSB8fCBBUElDYWxsRXJyb3IuaXNJbnN0YW5jZShlcnJvcikpIHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRocm93IG5ldyBBUElDYWxsRXJyb3Ioe1xuICAgICAgICAgIG1lc3NhZ2U6IFwiRmFpbGVkIHRvIHByb2Nlc3MgZXJyb3IgcmVzcG9uc2VcIixcbiAgICAgICAgICBjYXVzZTogZXJyb3IsXG4gICAgICAgICAgc3RhdHVzQ29kZTogcmVzcG9uc2Uuc3RhdHVzLFxuICAgICAgICAgIHVybCxcbiAgICAgICAgICByZXNwb25zZUhlYWRlcnMsXG4gICAgICAgICAgcmVxdWVzdEJvZHlWYWx1ZXM6IHt9LFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgdGhyb3cgZXJyb3JJbmZvcm1hdGlvbi52YWx1ZTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IHN1Y2Nlc3NmdWxSZXNwb25zZUhhbmRsZXIoe1xuICAgICAgICByZXNwb25zZSxcbiAgICAgICAgdXJsLFxuICAgICAgICByZXF1ZXN0Qm9keVZhbHVlczoge30sXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgaWYgKGlzQWJvcnRFcnJvcihlcnJvcikgfHwgQVBJQ2FsbEVycm9yLmlzSW5zdGFuY2UoZXJyb3IpKSB7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhyb3cgbmV3IEFQSUNhbGxFcnJvcih7XG4gICAgICAgIG1lc3NhZ2U6IFwiRmFpbGVkIHRvIHByb2Nlc3Mgc3VjY2Vzc2Z1bCByZXNwb25zZVwiLFxuICAgICAgICBjYXVzZTogZXJyb3IsXG4gICAgICAgIHN0YXR1c0NvZGU6IHJlc3BvbnNlLnN0YXR1cyxcbiAgICAgICAgdXJsLFxuICAgICAgICByZXNwb25zZUhlYWRlcnMsXG4gICAgICAgIHJlcXVlc3RCb2R5VmFsdWVzOiB7fSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICB0aHJvdyBoYW5kbGVGZXRjaEVycm9yKHsgZXJyb3IsIHVybCwgcmVxdWVzdEJvZHlWYWx1ZXM6IHt9IH0pO1xuICB9XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7O0FBSUEsTUFBTSw4QkFBOEIsQ0FBQyxnQkFBZ0Isa0JBQWtCO0FBRXZFLFNBQWdCLGlCQUFpQixFQUMvQixPQUNBLEtBQ0EscUJBS0M7QUFDRCxLQUFJLGFBQWEsTUFBTSxFQUFFO0FBQ3ZCLFNBQU87O0FBR1QsS0FDRSxpQkFBaUIsYUFDakIsNEJBQTRCLFNBQVMsTUFBTSxRQUFRLGFBQWEsQ0FBQyxFQUNqRTtFQUNBLE1BQU0sUUFBUyxNQUE0QjtBQUUzQyxNQUFJLE9BQU87QUFDVCxVQUFPLElBQUksYUFBYTtJQUN0QixTQUFTLDBCQUEwQixNQUFNO0lBQ3pDO0lBQ0E7SUFDQTtJQUNBLGFBQWE7SUFDZCxDQUFDOzs7QUFJTixRQUFPOztBQUlULE1BQU0seUJBQXlCLFdBQVc7QUFFMUMsTUFBYSxhQUFhLE9BQVUsRUFDbEMsS0FDQSxVQUFVLEVBQUUsRUFDWiwyQkFDQSx1QkFDQSxhQUNBLFFBQVEsa0JBQWtCLE9BUXRCO0FBQ0osS0FBSTtFQUNGLE1BQU0sV0FBVyxNQUFNLE1BQU0sS0FBSztHQUNoQyxRQUFRO0dBQ1IsU0FBUyxvQkFBb0IsU0FBUyxpQ0FBaUM7R0FDdkUsUUFBUTtHQUNULENBQUM7RUFFRixNQUFNLGtCQUFrQix1QkFBdUIsU0FBUztBQUV4RCxNQUFJLENBQUMsU0FBUyxJQUFJO0dBQ2hCLElBQUlBO0FBS0osT0FBSTtBQUNGLHVCQUFtQixNQUFNLHNCQUFzQjtLQUM3QztLQUNBO0tBQ0EsbUJBQW1CLEVBQUU7S0FDdEIsQ0FBQztZQUNLLE9BQU87QUFDZCxRQUFJLGFBQWEsTUFBTSxJQUFJLGFBQWEsV0FBVyxNQUFNLEVBQUU7QUFDekQsV0FBTTs7QUFHUixVQUFNLElBQUksYUFBYTtLQUNyQixTQUFTO0tBQ1QsT0FBTztLQUNQLFlBQVksU0FBUztLQUNyQjtLQUNBO0tBQ0EsbUJBQW1CLEVBQUU7S0FDdEIsQ0FBQzs7QUFHSixTQUFNLGlCQUFpQjs7QUFHekIsTUFBSTtBQUNGLFVBQU8sTUFBTSwwQkFBMEI7SUFDckM7SUFDQTtJQUNBLG1CQUFtQixFQUFFO0lBQ3RCLENBQUM7V0FDSyxPQUFPO0FBQ2QsT0FBSSxpQkFBaUIsT0FBTztBQUMxQixRQUFJLGFBQWEsTUFBTSxJQUFJLGFBQWEsV0FBVyxNQUFNLEVBQUU7QUFDekQsV0FBTTs7O0FBSVYsU0FBTSxJQUFJLGFBQWE7SUFDckIsU0FBUztJQUNULE9BQU87SUFDUCxZQUFZLFNBQVM7SUFDckI7SUFDQTtJQUNBLG1CQUFtQixFQUFFO0lBQ3RCLENBQUM7O1VBRUcsT0FBTztBQUNkLFFBQU0saUJBQWlCO0dBQUU7R0FBTztHQUFLLG1CQUFtQixFQUFFO0dBQUUsQ0FBQyJ9
78
+
79
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FpL3Byb3ZpZGVycy9ydHpyL3V0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFQSUNhbGxFcnJvciB9IGZyb20gXCJAYWktc2RrL3Byb3ZpZGVyXCI7XG5pbXBvcnQgeyBleHRyYWN0UmVzcG9uc2VIZWFkZXJzLCBpc0Fib3J0RXJyb3IsIHdpdGhVc2VyQWdlbnRTdWZmaXggfSBmcm9tIFwiQGFpLXNkay9wcm92aWRlci11dGlsc1wiO1xuaW1wb3J0IHsgdHlwZSBGZXRjaEZ1bmN0aW9uLCB0eXBlIFJlc3BvbnNlSGFuZGxlciB9IGZyb20gXCJAYWktc2RrL3Byb3ZpZGVyLXV0aWxzXCI7XG5cbmNvbnN0IEZFVENIX0ZBSUxFRF9FUlJPUl9NRVNTQUdFUyA9IFtcImZldGNoIGZhaWxlZFwiLCBcImZhaWxlZCB0byBmZXRjaFwiXTtcblxuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZUZldGNoRXJyb3Ioe1xuICBlcnJvcixcbiAgdXJsLFxuICByZXF1ZXN0Qm9keVZhbHVlcyxcbn06IHtcbiAgZXJyb3I6IHVua25vd247XG4gIHVybDogc3RyaW5nO1xuICByZXF1ZXN0Qm9keVZhbHVlczogdW5rbm93bjtcbn0pIHtcbiAgaWYgKGlzQWJvcnRFcnJvcihlcnJvcikpIHtcbiAgICByZXR1cm4gZXJyb3I7XG4gIH1cblxuICBpZiAoXG4gICAgZXJyb3IgaW5zdGFuY2VvZiBUeXBlRXJyb3IgJiZcbiAgICBGRVRDSF9GQUlMRURfRVJST1JfTUVTU0FHRVMuaW5jbHVkZXMoZXJyb3IubWVzc2FnZS50b0xvd2VyQ2FzZSgpKVxuICApIHtcbiAgICBjb25zdCBjYXVzZSA9IChlcnJvciBhcyB7IGNhdXNlPzogRXJyb3IgfSkuY2F1c2U7XG5cbiAgICBpZiAoY2F1c2UpIHtcbiAgICAgIHJldHVybiBuZXcgQVBJQ2FsbEVycm9yKHtcbiAgICAgICAgbWVzc2FnZTogYENhbm5vdCBjb25uZWN0IHRvIEFQSTogJHtjYXVzZS5tZXNzYWdlfWAsXG4gICAgICAgIGNhdXNlLFxuICAgICAgICB1cmwsXG4gICAgICAgIHJlcXVlc3RCb2R5VmFsdWVzLFxuICAgICAgICBpc1JldHJ5YWJsZTogdHJ1ZSwgLy8gcmV0cnkgd2hlbiBuZXR3b3JrIGVycm9yXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZXJyb3I7XG59XG5cbi8vIHVzZSBmdW5jdGlvbiB0byBhbGxvdyBmb3IgbW9ja2luZyBpbiB0ZXN0czpcbmNvbnN0IGdldE9yaWdpbmFsRmV0Y2ggPSAoKSA9PiBnbG9iYWxUaGlzLmZldGNoO1xuXG5leHBvcnQgY29uc3QgZ2V0RnJvbUFwaSA9IGFzeW5jIDxUPih7XG4gIHVybCxcbiAgaGVhZGVycyA9IHt9LFxuICBzdWNjZXNzZnVsUmVzcG9uc2VIYW5kbGVyLFxuICBmYWlsZWRSZXNwb25zZUhhbmRsZXIsXG4gIGFib3J0U2lnbmFsLFxuICBmZXRjaCA9IGdldE9yaWdpbmFsRmV0Y2goKSxcbn06IHtcbiAgdXJsOiBzdHJpbmc7XG4gIGhlYWRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+O1xuICBmYWlsZWRSZXNwb25zZUhhbmRsZXI6IFJlc3BvbnNlSGFuZGxlcjxFcnJvcj47XG4gIHN1Y2Nlc3NmdWxSZXNwb25zZUhhbmRsZXI6IFJlc3BvbnNlSGFuZGxlcjxUPjtcbiAgYWJvcnRTaWduYWw/OiBBYm9ydFNpZ25hbDtcbiAgZmV0Y2g/OiBGZXRjaEZ1bmN0aW9uO1xufSkgPT4ge1xuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsLCB7XG4gICAgICBtZXRob2Q6IFwiR0VUXCIsXG4gICAgICBoZWFkZXJzOiB3aXRoVXNlckFnZW50U3VmZml4KGhlYWRlcnMsIGBjYXJ0YW5vdmEtYWkvcnR6ci1hcGktcHJvdmlkZXJgKSxcbiAgICAgIHNpZ25hbDogYWJvcnRTaWduYWwsXG4gICAgfSk7XG5cbiAgICBjb25zdCByZXNwb25zZUhlYWRlcnMgPSBleHRyYWN0UmVzcG9uc2VIZWFkZXJzKHJlc3BvbnNlKTtcblxuICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgIGxldCBlcnJvckluZm9ybWF0aW9uOiB7XG4gICAgICAgIHZhbHVlOiBFcnJvcjtcbiAgICAgICAgcmVzcG9uc2VIZWFkZXJzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IHVuZGVmaW5lZDtcbiAgICAgIH07XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGVycm9ySW5mb3JtYXRpb24gPSBhd2FpdCBmYWlsZWRSZXNwb25zZUhhbmRsZXIoe1xuICAgICAgICAgIHJlc3BvbnNlLFxuICAgICAgICAgIHVybCxcbiAgICAgICAgICByZXF1ZXN0Qm9keVZhbHVlczoge30sXG4gICAgICAgIH0pO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaWYgKGlzQWJvcnRFcnJvcihlcnJvcikgfHwgQVBJQ2FsbEVycm9yLmlzSW5zdGFuY2UoZXJyb3IpKSB7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBuZXcgQVBJQ2FsbEVycm9yKHtcbiAgICAgICAgICBtZXNzYWdlOiBcIkZhaWxlZCB0byBwcm9jZXNzIGVycm9yIHJlc3BvbnNlXCIsXG4gICAgICAgICAgY2F1c2U6IGVycm9yLFxuICAgICAgICAgIHN0YXR1c0NvZGU6IHJlc3BvbnNlLnN0YXR1cyxcbiAgICAgICAgICB1cmwsXG4gICAgICAgICAgcmVzcG9uc2VIZWFkZXJzLFxuICAgICAgICAgIHJlcXVlc3RCb2R5VmFsdWVzOiB7fSxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHRocm93IGVycm9ySW5mb3JtYXRpb24udmFsdWU7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCBzdWNjZXNzZnVsUmVzcG9uc2VIYW5kbGVyKHtcbiAgICAgICAgcmVzcG9uc2UsXG4gICAgICAgIHVybCxcbiAgICAgICAgcmVxdWVzdEJvZHlWYWx1ZXM6IHt9LFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgIGlmIChpc0Fib3J0RXJyb3IoZXJyb3IpIHx8IEFQSUNhbGxFcnJvci5pc0luc3RhbmNlKGVycm9yKSkge1xuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRocm93IG5ldyBBUElDYWxsRXJyb3Ioe1xuICAgICAgICBtZXNzYWdlOiBcIkZhaWxlZCB0byBwcm9jZXNzIHN1Y2Nlc3NmdWwgcmVzcG9uc2VcIixcbiAgICAgICAgY2F1c2U6IGVycm9yLFxuICAgICAgICBzdGF0dXNDb2RlOiByZXNwb25zZS5zdGF0dXMsXG4gICAgICAgIHVybCxcbiAgICAgICAgcmVzcG9uc2VIZWFkZXJzLFxuICAgICAgICByZXF1ZXN0Qm9keVZhbHVlczoge30sXG4gICAgICB9KTtcbiAgICB9XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgdGhyb3cgaGFuZGxlRmV0Y2hFcnJvcih7IGVycm9yLCB1cmwsIHJlcXVlc3RCb2R5VmFsdWVzOiB7fSB9KTtcbiAgfVxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7O0FBSUEsTUFBTSw4QkFBOEIsQ0FBQyxnQkFBZ0IsaUJBQWlCO0FBRXRFLFNBQWdCLGlCQUFpQixFQUMvQixPQUNBLEtBQ0EscUJBS0M7Q0FDRCxJQUFJLGFBQWEsS0FBSyxHQUNwQixPQUFPO0NBR1QsSUFDRSxpQkFBaUIsYUFDakIsNEJBQTRCLFNBQVMsTUFBTSxRQUFRLFlBQVksQ0FBQyxHQUNoRTtFQUNBLE1BQU0sUUFBUyxNQUE0QjtFQUUzQyxJQUFJLE9BQ0YsT0FBTyxJQUFJLGFBQWE7R0FDdEIsU0FBUywwQkFBMEIsTUFBTTtHQUN6QztHQUNBO0dBQ0E7R0FDQSxhQUFhO0VBQ2YsQ0FBQztDQUVMO0NBRUEsT0FBTztBQUNUO0FBR0EsTUFBTSx5QkFBeUIsV0FBVztBQUUxQyxNQUFhLGFBQWEsT0FBVSxFQUNsQyxLQUNBLFVBQVUsQ0FBQyxHQUNYLDJCQUNBLHVCQUNBLGFBQ0EsUUFBUSxpQkFBaUIsUUFRckI7Q0FDSixJQUFJO0VBQ0YsTUFBTSxXQUFXLE1BQU0sTUFBTSxLQUFLO0dBQ2hDLFFBQVE7R0FDUixTQUFTLG9CQUFvQixTQUFTLGdDQUFnQztHQUN0RSxRQUFRO0VBQ1YsQ0FBQztFQUVELE1BQU0sa0JBQWtCLHVCQUF1QixRQUFRO0VBRXZELElBQUksQ0FBQyxTQUFTLElBQUk7R0FDaEIsSUFBSTtHQUtKLElBQUk7SUFDRixtQkFBbUIsTUFBTSxzQkFBc0I7S0FDN0M7S0FDQTtLQUNBLG1CQUFtQixDQUFDO0lBQ3RCLENBQUM7R0FDSCxTQUFTLE9BQU87SUFDZCxJQUFJLGFBQWEsS0FBSyxLQUFLLGFBQWEsV0FBVyxLQUFLLEdBQ3RELE1BQU07SUFHUixNQUFNLElBQUksYUFBYTtLQUNyQixTQUFTO0tBQ1QsT0FBTztLQUNQLFlBQVksU0FBUztLQUNyQjtLQUNBO0tBQ0EsbUJBQW1CLENBQUM7SUFDdEIsQ0FBQztHQUNIO0dBRUEsTUFBTSxpQkFBaUI7RUFDekI7RUFFQSxJQUFJO0dBQ0YsT0FBTyxNQUFNLDBCQUEwQjtJQUNyQztJQUNBO0lBQ0EsbUJBQW1CLENBQUM7R0FDdEIsQ0FBQztFQUNILFNBQVMsT0FBTztHQUNkLElBQUksaUJBQWlCLE9BQ25CO1FBQUksYUFBYSxLQUFLLEtBQUssYUFBYSxXQUFXLEtBQUssR0FDdEQsTUFBTTtHQUNSO0dBR0YsTUFBTSxJQUFJLGFBQWE7SUFDckIsU0FBUztJQUNULE9BQU87SUFDUCxZQUFZLFNBQVM7SUFDckI7SUFDQTtJQUNBLG1CQUFtQixDQUFDO0dBQ3RCLENBQUM7RUFDSDtDQUNGLFNBQVMsT0FBTztFQUNkLE1BQU0saUJBQWlCO0dBQUU7R0FBTztHQUFLLG1CQUFtQixDQUFDO0VBQUUsQ0FBQztDQUM5RDtBQUNGIn0=