sonamu 0.11.16 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/_rolldown/runtime.js +1 -2
- package/dist/ai/agents/agent.js +2 -3
- package/dist/ai/agents/index.js +1 -2
- package/dist/ai/index.js +1 -2
- package/dist/ai/providers/rtzr/api.js +1 -2
- package/dist/ai/providers/rtzr/error.js +2 -3
- package/dist/ai/providers/rtzr/model.js +1 -2
- package/dist/ai/providers/rtzr/options.js +1 -2
- package/dist/ai/providers/rtzr/provider.js +1 -2
- package/dist/ai/providers/rtzr/utils.js +1 -2
- package/dist/api/base-frame.js +4 -4
- package/dist/api/caster.d.ts +1 -1
- package/dist/api/caster.d.ts.map +1 -1
- package/dist/api/caster.js +9 -9
- package/dist/api/code-converters.js +6 -5
- package/dist/api/config.d.ts +1 -1
- package/dist/api/config.d.ts.map +1 -1
- package/dist/api/config.js +2 -3
- package/dist/api/context.d.ts +2 -3
- package/dist/api/context.d.ts.map +1 -1
- package/dist/api/context.js +2 -3
- package/dist/api/decorators.js +2 -3
- package/dist/api/http-validator.js +2 -3
- package/dist/api/index.js +8 -3
- package/dist/api/secret.js +1 -2
- package/dist/api/sonamu.d.ts +3 -5
- package/dist/api/sonamu.d.ts.map +1 -1
- package/dist/api/sonamu.js +30 -24
- package/dist/api/validator.js +1 -2
- package/dist/api/websocket-helpers.js +2 -3
- package/dist/auth/audit-log/builders.js +1 -2
- package/dist/auth/audit-log/client-ip.js +2 -3
- package/dist/auth/audit-log/events.js +1 -2
- package/dist/auth/audit-log/plugin.d.ts.map +1 -1
- package/dist/auth/audit-log/plugin.js +2 -3
- package/dist/auth/audit-log-ingestor.js +2 -3
- package/dist/auth/auth-generator.js +2 -3
- package/dist/auth/better-auth-entities.js +1 -2
- package/dist/auth/better-auth-request.js +2 -3
- package/dist/auth/index.js +2 -3
- package/dist/auth/knex-adapter.js +2 -3
- package/dist/auth/plugins/entity-definitions/admin.js +1 -2
- package/dist/auth/plugins/entity-definitions/anonymous.js +1 -2
- package/dist/auth/plugins/entity-definitions/api-key.js +1 -2
- package/dist/auth/plugins/entity-definitions/audit-log.js +1 -2
- package/dist/auth/plugins/entity-definitions/index.js +1 -2
- package/dist/auth/plugins/entity-definitions/jwt.js +1 -2
- package/dist/auth/plugins/entity-definitions/organization.js +1 -2
- package/dist/auth/plugins/entity-definitions/passkey.js +1 -2
- package/dist/auth/plugins/entity-definitions/phone-number.js +1 -2
- package/dist/auth/plugins/entity-definitions/sso.js +1 -2
- package/dist/auth/plugins/entity-definitions/two-factor.js +1 -2
- package/dist/auth/plugins/entity-definitions/username.js +1 -2
- package/dist/auth/plugins/wrappers/admin.d.ts +33 -32
- package/dist/auth/plugins/wrappers/admin.d.ts.map +1 -1
- package/dist/auth/plugins/wrappers/admin.js +2 -3
- package/dist/auth/plugins/wrappers/anonymous.js +2 -3
- package/dist/auth/plugins/wrappers/api-key.js +2 -3
- package/dist/auth/plugins/wrappers/jwt.js +2 -3
- package/dist/auth/plugins/wrappers/organization.js +2 -3
- package/dist/auth/plugins/wrappers/passkey.js +2 -3
- package/dist/auth/plugins/wrappers/phone-number.d.ts +43 -1
- package/dist/auth/plugins/wrappers/phone-number.d.ts.map +1 -1
- package/dist/auth/plugins/wrappers/phone-number.js +2 -3
- package/dist/auth/plugins/wrappers/sso.d.ts +138 -187
- package/dist/auth/plugins/wrappers/sso.d.ts.map +1 -1
- package/dist/auth/plugins/wrappers/sso.js +1 -2
- package/dist/auth/plugins/wrappers/two-factor.d.ts +51 -10
- package/dist/auth/plugins/wrappers/two-factor.d.ts.map +1 -1
- package/dist/auth/plugins/wrappers/two-factor.js +2 -3
- package/dist/auth/plugins/wrappers/username.d.ts +39 -5
- package/dist/auth/plugins/wrappers/username.d.ts.map +1 -1
- package/dist/auth/plugins/wrappers/username.js +2 -3
- package/dist/bin/build-config.js +5 -5
- package/dist/bin/compiler-policy.js +2 -3
- package/dist/bin/fixture.js +7 -5
- package/dist/bin/hmr-hook-register.js +1 -2
- package/dist/bin/migrate-targets.js +2 -3
- package/dist/bin/test-command.js +2 -3
- package/dist/bin/ts-loader-register.js +2 -3
- package/dist/bin/ts-loader-registration.js +2 -3
- package/dist/bin/typecheck-web.js +2 -3
- package/dist/cache/cache-manager.js +1 -2
- package/dist/cache/decorator.js +2 -3
- package/dist/cache/drivers.js +1 -2
- package/dist/cache/index.js +2 -3
- package/dist/cache-control/cache-control.js +1 -2
- package/dist/code-formatting/index.js +2 -3
- package/dist/code-formatting/oxfmt.js +2 -3
- package/dist/code-formatting/oxlint.js +2 -3
- package/dist/compress/compress.js +1 -2
- package/dist/compress/index.js +2 -2
- package/dist/compress/types.d.ts +1 -1
- package/dist/compress/types.d.ts.map +1 -1
- package/dist/cone/cone-generator.js +2 -3
- package/dist/database/_batch_update.js +1 -2
- package/dist/database/base-model.js +4 -4
- package/dist/database/db.js +4 -4
- package/dist/database/knex.js +2 -3
- package/dist/database/puri-wrapper.js +2 -3
- package/dist/database/puri.js +23 -22
- package/dist/database/puri.types.js +1 -2
- package/dist/database/transaction-context.js +1 -2
- package/dist/database/upsert-builder.js +2 -3
- package/dist/dict/en.js +2 -3
- package/dist/dict/index.js +3 -3
- package/dist/dict/ko.js +2 -3
- package/dist/dict/rc-keys.js +1 -2
- package/dist/dict/sd.js +2 -3
- package/dist/dict/sonamu-dictionary.js +7 -6
- package/dist/dict/utils.js +2 -3
- package/dist/entity/entity-manager.d.ts +66 -66
- package/dist/entity/entity-manager.js +4 -4
- package/dist/entity/entity-template-cone.js +2 -3
- package/dist/entity/entity.js +21 -18
- package/dist/env.js +1 -2
- package/dist/exceptions/error-handler.d.ts.map +1 -1
- package/dist/exceptions/error-handler.js +2 -3
- package/dist/exceptions/so-exceptions.js +2 -3
- package/dist/filter/index.js +3 -2
- package/dist/filter/types.js +1 -2
- package/dist/filter/utils.js +7 -6
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +42 -6
- package/dist/logger/category.js +2 -3
- package/dist/logger/configure.js +5 -5
- package/dist/migration/code-generation.js +23 -16
- package/dist/migration/index-where-predicate.js +2 -3
- package/dist/migration/migration-set.js +2 -3
- package/dist/migration/migrator.js +2 -3
- package/dist/migration/postgresql-schema-reader.js +6 -9
- package/dist/migration/slack-confirm.js +2 -3
- package/dist/naite/naite-reporter.js +2 -3
- package/dist/naite/naite.js +10 -8
- package/dist/runtime-type.js +2 -3
- package/dist/ssr/hmr-opt-out.js +1 -2
- package/dist/ssr/index.js +7 -4
- package/dist/ssr/registry.js +1 -2
- package/dist/ssr/renderer.js +2 -3
- package/dist/storage/base-file.js +1 -2
- package/dist/storage/buffered-file.js +2 -3
- package/dist/storage/drivers.js +1 -2
- package/dist/storage/index.js +2 -3
- package/dist/storage/s3-driver.js +1 -2
- package/dist/storage/storage-manager.js +2 -3
- package/dist/storage/uploaded-file.js +2 -3
- package/dist/stream/__tests__/ws-test-helpers.d.ts +108 -0
- package/dist/stream/__tests__/ws-test-helpers.d.ts.map +1 -0
- package/dist/stream/__tests__/ws-test-helpers.js +259 -0
- package/dist/stream/index.d.ts +1 -0
- package/dist/stream/index.d.ts.map +1 -1
- package/dist/stream/index.js +15 -4
- package/dist/stream/sse.js +1 -2
- package/dist/stream/ws-audience-resolver.d.ts +8 -5
- package/dist/stream/ws-audience-resolver.d.ts.map +1 -1
- package/dist/stream/ws-audience-resolver.js +17 -15
- package/dist/stream/ws-audience.js +1 -2
- package/dist/stream/ws-cluster-bus.d.ts +9 -4
- package/dist/stream/ws-cluster-bus.d.ts.map +1 -1
- package/dist/stream/ws-cluster-bus.js +2 -3
- package/dist/stream/ws-core.d.ts +10 -0
- package/dist/stream/ws-core.d.ts.map +1 -1
- package/dist/stream/ws-delivery.d.ts +30 -4
- package/dist/stream/ws-delivery.d.ts.map +1 -1
- package/dist/stream/ws-delivery.js +200 -54
- package/dist/stream/ws-frame.d.ts +15 -0
- package/dist/stream/ws-frame.d.ts.map +1 -0
- package/dist/stream/ws-frame.js +28 -0
- package/dist/stream/ws-local-connection-store.d.ts +4 -4
- package/dist/stream/ws-local-connection-store.d.ts.map +1 -1
- package/dist/stream/ws-local-connection-store.js +3 -4
- package/dist/stream/ws-presence-index.d.ts +36 -0
- package/dist/stream/ws-presence-index.d.ts.map +1 -0
- package/dist/stream/ws-presence-index.js +176 -0
- package/dist/stream/ws-presence-store.d.ts +39 -39
- package/dist/stream/ws-presence-store.d.ts.map +1 -1
- package/dist/stream/ws-presence-store.js +23 -154
- package/dist/stream/ws-registry.d.ts +45 -17
- package/dist/stream/ws-registry.d.ts.map +1 -1
- package/dist/stream/ws-registry.js +170 -62
- package/dist/stream/ws-session-id.d.ts +14 -0
- package/dist/stream/ws-session-id.d.ts.map +1 -0
- package/dist/stream/ws-session-id.js +36 -0
- package/dist/stream/ws-telemetry-memory.js +3 -4
- package/dist/stream/ws-telemetry-trace.js +1 -2
- package/dist/stream/ws-telemetry.js +2 -3
- package/dist/stream/ws.d.ts +20 -10
- package/dist/stream/ws.d.ts.map +1 -1
- package/dist/stream/ws.js +60 -38
- package/dist/syncer/api-parser.js +2 -3
- package/dist/syncer/checksum.js +4 -4
- package/dist/syncer/code-generator.js +4 -4
- package/dist/syncer/entity-operations.js +2 -3
- package/dist/syncer/event-batcher.js +1 -2
- package/dist/syncer/file-copy.js +2 -3
- package/dist/syncer/file-patterns.js +2 -3
- package/dist/syncer/file-tracking.js +2 -3
- package/dist/syncer/filesystem-dependencies.js +1 -2
- package/dist/syncer/index.js +8 -2
- package/dist/syncer/module-loader.js +8 -6
- package/dist/syncer/syncer-actions.js +8 -7
- package/dist/syncer/syncer.js +13 -8
- package/dist/syncer/watcher.js +2 -3
- package/dist/tasks/decorator.js +1 -2
- package/dist/tasks/step-wrapper.js +2 -3
- package/dist/tasks/workflow-manager.js +2 -3
- package/dist/template/entity-converter.js +17 -16
- package/dist/template/helpers.js +2 -3
- package/dist/template/implementations/entity.template.js +2 -3
- package/dist/template/implementations/entry-server.template.js +2 -3
- package/dist/template/implementations/generated.template.js +2 -3
- package/dist/template/implementations/generated_http.template.js +6 -6
- package/dist/template/implementations/generated_sso.template.js +2 -3
- package/dist/template/implementations/http_validators.template.js +2 -3
- package/dist/template/implementations/init_types.template.js +2 -3
- package/dist/template/implementations/model.template.js +4 -4
- package/dist/template/implementations/model_test.template.js +2 -3
- package/dist/template/implementations/queries.template.js +2 -3
- package/dist/template/implementations/sd.template.js +2 -3
- package/dist/template/implementations/services.template.js +2 -3
- package/dist/template/implementations/view_form.template.js +12 -9
- package/dist/template/implementations/view_id_all_select.template.js +2 -3
- package/dist/template/implementations/view_list.template.d.ts.map +1 -1
- package/dist/template/implementations/view_list.template.js +19 -17
- package/dist/template/implementations/view_search_input.template.js +2 -3
- package/dist/template/index.js +9 -3
- package/dist/template/template-manager.js +2 -3
- package/dist/template/template-types.js +1 -2
- package/dist/template/template.js +2 -3
- package/dist/template/zod-converter.js +54 -47
- package/dist/testing/_relation-graph.js +2 -3
- package/dist/testing/bootstrap.js +2 -3
- package/dist/testing/data-explorer.js +2 -3
- package/dist/testing/dev-test-routes.js +2 -3
- package/dist/testing/dev-vitest-manager.js +15 -12
- package/dist/testing/faker-mappings.js +1 -2
- package/dist/testing/filesystem.js +2 -3
- package/dist/testing/fixture-generator.js +2 -3
- package/dist/testing/fixture-loader.js +1 -2
- package/dist/testing/fixture-manager.js +12 -9
- package/dist/testing/global-setup.js +5 -5
- package/dist/testing/index.js +6 -3
- package/dist/testing/naite-vitest-reporter.js +1 -2
- package/dist/testing/parallel-db-manager.js +2 -3
- package/dist/testing/vitest-helpers.js +2 -3
- package/dist/tooling/__tests__/helpers/sonamu-test-root.js +2 -3
- package/dist/tooling/cdd-service.js +1 -2
- package/dist/tooling/cli-tooling.js +1 -2
- package/dist/tooling/fixture-service.js +1 -2
- package/dist/tooling/index.js +1 -2
- package/dist/tooling/test-run-client.js +2 -3
- package/dist/tsdown.api.config.js +1 -2
- package/dist/types/types.js +2 -3
- package/dist/ui/ai-api.d.ts.map +1 -1
- package/dist/ui/ai-api.js +4 -5
- package/dist/ui/ai-client.d.ts +2 -2
- package/dist/ui/ai-client.d.ts.map +1 -1
- package/dist/ui/ai-client.js +9 -8
- package/dist/ui/api.d.ts.map +1 -1
- package/dist/ui/api.js +11 -8
- package/dist/ui/async-route.js +1 -2
- package/dist/ui/cdd-service.js +22 -21
- package/dist/ui/migrations-api.js +6 -5
- package/dist/ui-web/assets/index-QDMyy31K.js +180 -0
- package/dist/ui-web/assets/index-dV7akMFB.css +1 -0
- package/dist/ui-web/index.html +2 -2
- package/dist/utils/async-utils.js +1 -2
- package/dist/utils/class-name.js +1 -2
- package/dist/utils/console-util.js +1 -2
- package/dist/utils/controller.js +2 -3
- package/dist/utils/esm-utils.js +1 -2
- package/dist/utils/fs-utils.js +2 -3
- package/dist/utils/lodash-able.js +1 -2
- package/dist/utils/model.js +1 -2
- package/dist/utils/object-utils.js +2 -3
- package/dist/utils/path-utils.js +2 -3
- package/dist/utils/process-utils.js +2 -3
- package/dist/utils/runtime-value.js +1 -2
- package/dist/utils/sql-parser.js +2 -3
- package/dist/utils/type-utils.js +8 -8
- package/dist/utils/utils.js +2 -3
- package/dist/utils/zod-error.js +2 -3
- package/dist/vector/chunking.js +1 -2
- package/dist/vector/config.js +1 -2
- package/dist/vector/embedding.js +4 -4
- package/package.json +63 -63
- package/src/ai/agents/agent.ts +1 -1
- package/src/api/__tests__/sonamu.plugins.test.ts +11 -1
- package/src/api/__tests__/sonamu.websocket-routes.test.ts +234 -0
- package/src/api/__tests__/sonamu.websocket.test.ts +241 -24
- package/src/api/config.ts +1 -1
- package/src/api/context.ts +2 -8
- package/src/api/sonamu.ts +46 -28
- package/src/auth/audit-log/plugin.ts +2 -0
- package/src/compress/types.ts +1 -1
- package/src/exceptions/error-handler.ts +3 -2
- package/src/index.ts +1 -0
- package/src/stream/__tests__/ws-contracts.test.ts +483 -265
- package/src/stream/__tests__/ws-multinode.test.ts +326 -0
- package/src/stream/__tests__/ws-registry-async.test.ts +855 -0
- package/src/stream/__tests__/ws-test-helpers.ts +360 -0
- package/src/stream/__tests__/ws.test.ts +342 -145
- package/src/stream/index.ts +1 -0
- package/src/stream/ws-audience-resolver.ts +21 -19
- package/src/stream/ws-cluster-bus.ts +12 -4
- package/src/stream/ws-core.ts +14 -0
- package/src/stream/ws-delivery.ts +321 -97
- package/src/stream/ws-frame.ts +39 -0
- package/src/stream/ws-local-connection-store.ts +10 -9
- package/src/stream/ws-presence-index.ts +273 -0
- package/src/stream/ws-presence-store.ts +64 -284
- package/src/stream/ws-registry.ts +272 -85
- package/src/stream/ws-session-id.ts +39 -0
- package/src/stream/ws.ts +91 -50
- package/src/template/implementations/model.template.ts +3 -3
- package/src/template/implementations/view_list.template.ts +12 -13
- package/src/ui/ai-api.ts +4 -2
- package/src/ui/ai-client.ts +2 -2
- package/src/ui/api.ts +58 -62
- package/dist/ui-web/assets/index-BMdIyKXS.css +0 -1
- package/dist/ui-web/assets/index-LpE8u19O.js +0 -178
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __esmMin } from "../_virtual/_rolldown/runtime.js";
|
|
2
|
-
|
|
2
|
+
// src/database/puri.types.ts
|
|
3
3
|
var FUZZY_OPERATORS;
|
|
4
4
|
var init_puri_types = __esmMin((() => {
|
|
5
5
|
FUZZY_OPERATORS = [
|
|
@@ -8,7 +8,6 @@ var init_puri_types = __esmMin((() => {
|
|
|
8
8
|
"<<%"
|
|
9
9
|
];
|
|
10
10
|
}));
|
|
11
|
-
//#endregion
|
|
12
11
|
init_puri_types();
|
|
13
12
|
export { FUZZY_OPERATORS, init_puri_types };
|
|
14
13
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __esmMin } from "../_virtual/_rolldown/runtime.js";
|
|
2
|
-
|
|
2
|
+
// src/database/transaction-context.ts
|
|
3
3
|
var TransactionContext;
|
|
4
4
|
var init_transaction_context = __esmMin((() => {
|
|
5
5
|
TransactionContext = class {
|
|
@@ -20,7 +20,6 @@ var init_transaction_context = __esmMin((() => {
|
|
|
20
20
|
}
|
|
21
21
|
};
|
|
22
22
|
}));
|
|
23
|
-
//#endregion
|
|
24
23
|
init_transaction_context();
|
|
25
24
|
export { TransactionContext, init_transaction_context };
|
|
26
25
|
|
|
@@ -8,7 +8,7 @@ import { batchUpdate, init__batch_update } from "./_batch_update.js";
|
|
|
8
8
|
import { getLogger } from "@logtape/logtape";
|
|
9
9
|
import { cluster, isArray, unique } from "radashi";
|
|
10
10
|
import { randomUUID } from "crypto";
|
|
11
|
-
|
|
11
|
+
// src/database/upsert-builder.ts
|
|
12
12
|
function isRefField(field) {
|
|
13
13
|
return isObjectValue(field) && "of" in field && "uuid" in field;
|
|
14
14
|
}
|
|
@@ -343,8 +343,7 @@ var init_upsert_builder = __esmMin((() => {
|
|
|
343
343
|
}
|
|
344
344
|
};
|
|
345
345
|
}));
|
|
346
|
-
//#endregion
|
|
347
346
|
init_upsert_builder();
|
|
348
347
|
export { UpsertBuilder, init_upsert_builder, isRefField };
|
|
349
348
|
|
|
350
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBzZXJ0LWJ1aWxkZXIuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhdGFiYXNlL3Vwc2VydC1idWlsZGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJhbmRvbVVVSUQgfSBmcm9tIFwiY3J5cHRvXCI7XG5cbmltcG9ydCB7IGdldExvZ2dlciB9IGZyb20gXCJAbG9ndGFwZS9sb2d0YXBlXCI7XG5pbXBvcnQgeyB0eXBlIEtuZXggfSBmcm9tIFwia25leFwiO1xuaW1wb3J0IHsgY2x1c3RlciwgaXNBcnJheSwgdW5pcXVlIH0gZnJvbSBcInJhZGFzaGlcIjtcblxuaW1wb3J0IHsgRW50aXR5TWFuYWdlciB9IGZyb20gXCIuLi9lbnRpdHkvZW50aXR5LW1hbmFnZXJcIjtcbmltcG9ydCB7IE5haXRlIH0gZnJvbSBcIi4uL25haXRlL25haXRlXCI7XG5pbXBvcnQge1xuICB0eXBlIERhdGFiYXNlRm9yZWlnbktleXMsXG4gIHR5cGUgRGF0YWJhc2VTY2hlbWFFeHRlbmQsXG4gIHR5cGUgRW50aXR5SW5kZXgsXG59IGZyb20gXCIuLi90eXBlcy90eXBlc1wiO1xuaW1wb3J0IHsgYXNBcnJheSB9IGZyb20gXCIuLi91dGlscy9tb2RlbFwiO1xuaW1wb3J0IHsgaXNOdW1iZXJWYWx1ZSwgaXNPYmplY3RWYWx1ZSwgaXNTdHJpbmdWYWx1ZSB9IGZyb20gXCIuLi91dGlscy9ydW50aW1lLXZhbHVlXCI7XG5pbXBvcnQgeyBhc3NlcnREZWZpbmVkLCBub25OdWxsYWJsZSB9IGZyb20gXCIuLi91dGlscy91dGlsc1wiO1xuaW1wb3J0IHsgYmF0Y2hVcGRhdGUgfSBmcm9tIFwiLi9fYmF0Y2hfdXBkYXRlXCI7XG5pbXBvcnQgeyB0eXBlIFJvd1dpdGhJZCB9IGZyb20gXCIuL19iYXRjaF91cGRhdGVcIjtcbmltcG9ydCB7IHR5cGUgQ29sdW1uS2V5cywgdHlwZSBGb3JlaWduS2V5Q29sdW1ucywgdHlwZSBJZFR5cGUsIHR5cGUgVGFibGVOYW1lIH0gZnJvbSBcIi4vcHVyaS50eXBlc1wiO1xuXG5jb25zdCBsb2dnZXIgPSBnZXRMb2dnZXIoW1wic29uYW11XCIsIFwiaW50ZXJuYWxcIiwgXCJ1cHNlcnQtYnVpbGRlclwiXSk7XG5cbi8qKlxuICogRksg7YOA7J6FIOy2lOuhoOydhCDsnITtlbQgRGF0YWJhc2VGb3JlaWduS2V5cyBleHBvcnRcbiAqIChtb2R1bGUgYXVnbWVudGF0aW9uIOyekOuPmSDroZzrk5wg67O07J6lKVxuICovXG5leHBvcnQgdHlwZSB7IERhdGFiYXNlRm9yZWlnbktleXMgfTtcblxudHlwZSBJbmhlcml0YWJsZUNvbHVtbnM8VFRhYmxlIGV4dGVuZHMgVGFibGVOYW1lPERhdGFiYXNlU2NoZW1hRXh0ZW5kPj4gPVxuICBUVGFibGUgZXh0ZW5kcyBrZXlvZiBEYXRhYmFzZVNjaGVtYUV4dGVuZCA/IENvbHVtbktleXM8RGF0YWJhc2VTY2hlbWFFeHRlbmRbVFRhYmxlXT4gOiBuZXZlcjtcblxuLy8g7LC47KGwIO2VhOuTnCDtg4DsnoVcbmV4cG9ydCB0eXBlIFVCUmVmID0ge1xuICB1dWlkOiBzdHJpbmc7XG4gIG9mOiBzdHJpbmc7XG4gIHVzZT86IHN0cmluZztcbn07XG5cbnR5cGUgVXBzZXJ0VmFsdWUgPVxuICB8IHN0cmluZ1xuICB8IG51bWJlclxuICB8IGJvb2xlYW5cbiAgfCBiaWdpbnRcbiAgfCBEYXRlXG4gIHwgQnVmZmVyXG4gIHwgS25leC5SYXdcbiAgfCBVQlJlZlxuICB8IG51bGxcbiAgfCBVcHNlcnRWYWx1ZVtdXG4gIHwgeyBba2V5OiBzdHJpbmddOiBVcHNlcnRWYWx1ZSB8IHVuZGVmaW5lZCB9O1xudHlwZSBVcHNlcnRSb3cgPSBSZWNvcmQ8c3RyaW5nLCBVcHNlcnRWYWx1ZSB8IHVuZGVmaW5lZD47XG5cbi8vIO2FjOydtOu4lCDrjbDsnbTthLAg7YOA7J6FXG50eXBlIFRhYmxlRGF0YSA9IHtcbiAgcmVmZXJlbmNlczogU2V0PHN0cmluZz47XG4gIHJvd3M6IFVwc2VydFJvd1tdO1xuICB1bmlxdWVJbmRleGVzOiBFbnRpdHlJbmRleFtdO1xuICB1bmlxdWVzTWFwOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuICBqc29uQ29sdW1uczogc3RyaW5nW107XG59O1xuXG4vLyB1cHNlcnQg7Ji17IWYXG5leHBvcnQgdHlwZSBVcHNlcnRPcHRpb25zPFRUYWJsZSBleHRlbmRzIFRhYmxlTmFtZTxEYXRhYmFzZVNjaGVtYUV4dGVuZD4+ID0ge1xuICBjaHVua1NpemU/OiBudW1iZXI7XG4gIGNsZWFuT3JwaGFucz86IEZvcmVpZ25LZXlDb2x1bW5zPFRUYWJsZT4gfCBGb3JlaWduS2V5Q29sdW1uczxUVGFibGU+W107XG4gIGluaGVyaXQ/OiBJbmhlcml0YWJsZUNvbHVtbnM8VFRhYmxlPltdO1xufTtcblxuLy8gaW5zZXJ0T25seSDsmLXshZhcbmV4cG9ydCB0eXBlIEluc2VydE9ubHlPcHRpb25zID0ge1xuICBjaHVua1NpemU/OiBudW1iZXI7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gaXNSZWZGaWVsZDxWYWx1ZT4oZmllbGQ6IFZhbHVlKTogZmllbGQgaXMgVmFsdWUgJiBVQlJlZiB7XG4gIHJldHVybiBpc09iamVjdFZhbHVlKGZpZWxkKSAmJiBcIm9mXCIgaW4gZmllbGQgJiYgXCJ1dWlkXCIgaW4gZmllbGQ7XG59XG5cbmV4cG9ydCBjbGFzcyBVcHNlcnRCdWlsZGVyIHtcbiAgdGFibGVzOiBNYXA8c3RyaW5nLCBUYWJsZURhdGE+O1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnRhYmxlcyA9IG5ldyBNYXAoKTtcbiAgfVxuXG4gIGdldFRhYmxlKHRhYmxlTmFtZTogc3RyaW5nKTogVGFibGVEYXRhIHtcbiAgICBjb25zdCB0YWJsZSA9IHRoaXMudGFibGVzLmdldCh0YWJsZU5hbWUpO1xuICAgIGlmICh0YWJsZSkge1xuICAgICAgcmV0dXJuIHRhYmxlO1xuICAgIH1cblxuICAgIGNvbnN0IHRhYmxlU3BlYyA9ICgoKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gRW50aXR5TWFuYWdlci5nZXRUYWJsZVNwZWModGFibGVOYW1lKTtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICB9KSgpO1xuXG4gICAgY29uc3QgdGFibGVEYXRhID0ge1xuICAgICAgcmVmZXJlbmNlczogbmV3IFNldDxzdHJpbmc+KCksXG4gICAgICByb3dzOiBbXSxcbiAgICAgIHVuaXF1ZUluZGV4ZXM6IHRhYmxlU3BlYz8udW5pcXVlSW5kZXhlcyA/PyBbXSxcbiAgICAgIHVuaXF1ZXNNYXA6IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCksXG4gICAgICBqc29uQ29sdW1uczogdGFibGVTcGVjPy5qc29uQ29sdW1ucyA/PyBbXSxcbiAgICB9O1xuICAgIHRoaXMudGFibGVzLnNldCh0YWJsZU5hbWUsIHRhYmxlRGF0YSk7XG4gICAgcmV0dXJuIHRhYmxlRGF0YTtcbiAgfVxuXG4gIGhhc1RhYmxlKHRhYmxlTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudGFibGVzLmhhcyh0YWJsZU5hbWUpO1xuICB9XG5cbiAgcmVnaXN0ZXI8Um93IGV4dGVuZHMgb2JqZWN0Pih0YWJsZU5hbWU6IHN0cmluZywgcm93OiBSb3cpOiBVQlJlZiB7XG4gICAgY29uc3QgdGFibGUgPSB0aGlzLmdldFRhYmxlKHRhYmxlTmFtZSk7XG5cbiAgICAvLyDtlbTri7kg7YWM7J2067iU7J2YIHVuaXF1ZSDsnbjrjbHsiqTrpbwg7Iic7ZqM7ZWY66mwIO2CpCDsg53shLFcbiAgICBjb25zdCB1bmlxdWVLZXlzID0gdGFibGUudW5pcXVlSW5kZXhlc1xuICAgICAgLm1hcCgodW5xSW5kZXgpID0+IHtcbiAgICAgICAgY29uc3QgdW5pcXVlS2V5QXJyYXkgPSB1bnFJbmRleC5jb2x1bW5zLm1hcCgodW5xQ29sKSA9PiB7XG4gICAgICAgICAgLy8gU0FGRVRZOiDsv7zrpqwg67mM642U7J2YIOygnOuEpOumrSDqs4Tslb3qs7wg7ISg7ZaJIOqygOymneydtCDsnbQg7YOA7J6F7J2EIOuztOyepe2VqeuLiOuLpC5cbiAgICAgICAgICBjb25zdCB2YWwgPSByb3dbdW5xQ29sLm5hbWUgYXMga2V5b2YgdHlwZW9mIHJvd107XG4gICAgICAgICAgaWYgKGlzUmVmRmllbGQodmFsKSkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbC51dWlkO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBTQUZFVFk6IOy/vOumrCDruYzrjZTsnZgg7KCc64Sk66atIOqzhOyVveqzvCDshKDtlokg6rKA7Kad7J20IOydtCDtg4DsnoXsnYQg67O07J6l7ZWp64uI64ukLlxuICAgICAgICAgICAgcmV0dXJuIHJvd1t1bnFDb2wubmFtZSBhcyBrZXlvZiB0eXBlb2Ygcm93XSA/PyByYW5kb21VVUlEKCk7IC8vIG51bGxhYmxl7J24IOqyveyasCB1dWlk66GcIOuenOuNpOqwkiDsgr3snoVcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIOqwkuydtCDrqqjrkZAgbnVsbOyduCDqsr3smrAg7YKkIOyDneyEsSDtjKjsiqRcbiAgICAgICAgaWYgKHVuaXF1ZUtleUFycmF5Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmlxdWVLZXlBcnJheS5qb2luKFwiLS0tZGVsaW1pdGVyLS1cIik7XG4gICAgICB9KVxuICAgICAgLmZpbHRlcihub25OdWxsYWJsZSk7XG5cbiAgICAvLyB1dWlkIOyDneyEsSDroZzsp4FcbiAgICBjb25zdCB7IHV1aWQsIGlzUmV1c2VkIH0gPSAoKCkgPT4ge1xuICAgICAgLy8g7YKk66W8IOyInO2ajO2VmOyXrCDsnbTrr7gg7KG07J6s7ZWY64qUIO2CpOqwgCDsnojripTsp4Ag7ZmV7J24XG4gICAgICBpZiAodW5pcXVlS2V5cy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGZvciAoY29uc3QgdW5pcXVlS2V5IG9mIHVuaXF1ZUtleXMpIHtcbiAgICAgICAgICBpZiAodGFibGUudW5pcXVlc01hcC5oYXModW5pcXVlS2V5KSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgdXVpZDogYXNzZXJ0RGVmaW5lZCh0YWJsZS51bmlxdWVzTWFwLmdldCh1bmlxdWVLZXkpLCBcIlVuaXF1ZSBrZXkgbm90IGZvdW5kXCIpLFxuICAgICAgICAgICAgICBpc1JldXNlZDogdHJ1ZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIOywvuydhCDsiJgg7JeG64qUIOqyveyasCDsg53shLFcbiAgICAgIHJldHVybiB7IHV1aWQ6IHJhbmRvbVVVSUQoKSwgaXNSZXVzZWQ6IGZhbHNlIH07XG4gICAgfSkoKTtcblxuICAgIC8vIOuqqOuToCDsnKDri4jtgaztgqTsl5Ag64yA7ZW0IOycoOuLiO2BrOunteyXkCB1dWlkIOyggOyepVxuICAgIGlmICh1bmlxdWVLZXlzLmxlbmd0aCA+IDApIHtcbiAgICAgIGZvciAoY29uc3QgdW5pcXVlS2V5IG9mIHVuaXF1ZUtleXMpIHtcbiAgICAgICAgdGFibGUudW5pcXVlc01hcC5zZXQodW5pcXVlS2V5LCB1dWlkKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyDsnbQg7YWM7J2067iU7JeQIOyCrOyaqeuQnCBSZWZGaWVsZOulvCDsiJztmoztlZjsl6wsIO2YhOyerCDthYzsnbTruJQg7KCV67O07JeQIOyWtOuWpCDtlYTrk5zrpbwg7LC47KGw7ZWY64qU7KeAIOy2lOqwgFxuICAgIC8vIOydtCDsoJXrs7Trpbwg64KY7KSR7JeQIOy5mO2ZmO2VoCDrlYwg7IKs7JqpXG4gICAgY29uc3Qgbm9ybWFsaXplZFJvdyA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgIE9iamVjdC5lbnRyaWVzKHJvdykubWFwKChbcm93S2V5LCByb3dWYWx1ZV0pID0+IHtcbiAgICAgICAgaWYgKGlzUmVmRmllbGQocm93VmFsdWUpKSB7XG4gICAgICAgICAgcm93VmFsdWUudXNlID8/PSBcImlkXCI7XG4gICAgICAgICAgdGFibGUucmVmZXJlbmNlcy5hZGQoYCR7cm93VmFsdWUub2Z9LiR7cm93VmFsdWUudXNlfWApO1xuICAgICAgICAgIHJldHVybiBbcm93S2V5LCByb3dWYWx1ZV0gYXMgY29uc3Q7XG4gICAgICAgIH0gZWxzZSBpZiAodGFibGUuanNvbkNvbHVtbnMuaW5jbHVkZXMocm93S2V5KSAmJiByb3dWYWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICAgIC8vIEpTT04g7Lus65+87J24IOqyveyasCBKU09OLnN0cmluZ2lmeSDsspjrpqwgKEtuZXjripQgSlNPTiDtg4DsnoXsnYQg7KeA7JuQ7ZWY7KeAIOyViuydjClcbiAgICAgICAgICByZXR1cm4gW3Jvd0tleSwgSlNPTi5zdHJpbmdpZnkocm93VmFsdWUpXSBhcyBjb25zdDtcbiAgICAgICAgfSBlbHNlIGlmIChpc0FycmF5KHJvd1ZhbHVlKSkge1xuICAgICAgICAgIC8vIOuwsOyXtOydgCDqt7jrjIDroZwg7KCA7J6lXG4gICAgICAgICAgcmV0dXJuIFtyb3dLZXksIHJvd1ZhbHVlXSBhcyBjb25zdDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gW3Jvd0tleSwgcm93VmFsdWVdIGFzIGNvbnN0O1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgdGFibGUucm93cy5wdXNoKHtcbiAgICAgIHV1aWQsXG4gICAgICAuLi5ub3JtYWxpemVkUm93LFxuICAgIH0pO1xuXG4gICAgY29uc3QgcmVzdWx0OiBVQlJlZiA9IHtcbiAgICAgIG9mOiB0YWJsZU5hbWUsXG4gICAgICAvLyBTQUZFVFk6IOy/vOumrCDruYzrjZTsnZgg7KCc64Sk66atIOqzhOyVveqzvCDshKDtlokg6rKA7Kad7J20IOydtCDtg4DsnoXsnYQg67O07J6l7ZWp64uI64ukLlxuICAgICAgdXVpZDogaXNTdHJpbmdWYWx1ZShub3JtYWxpemVkUm93LnV1aWQpID8gbm9ybWFsaXplZFJvdy51dWlkIDogdXVpZCxcbiAgICB9O1xuXG4gICAgTmFpdGUudChcInB1cmk6dWItcmVnaXN0ZXJcIiwge1xuICAgICAgdGFibGVOYW1lLFxuICAgICAgdXVpZDogcmVzdWx0LnV1aWQsXG4gICAgICBpc1V1aWRSZXVzZWQ6IGlzUmV1c2VkLFxuICAgICAgcm93LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGFzeW5jIHVwc2VydDxUVGFibGUgZXh0ZW5kcyBUYWJsZU5hbWU8RGF0YWJhc2VTY2hlbWFFeHRlbmQ+PihcbiAgICB3ZGI6IEtuZXgsXG4gICAgdGFibGVOYW1lOiBUVGFibGUsXG4gICAgb3B0aW9ucz86IFVwc2VydE9wdGlvbnM8VFRhYmxlPixcbiAgKTogUHJvbWlzZTxJZFR5cGU8RGF0YWJhc2VTY2hlbWFFeHRlbmQsIFRUYWJsZT5bXT4ge1xuICAgIHJldHVybiB0aGlzLnVwc2VydE9ySW5zZXJ0KHdkYiwgdGFibGVOYW1lLCBcInVwc2VydFwiLCBvcHRpb25zKTtcbiAgfVxuXG4gIGFzeW5jIGluc2VydE9ubHk8VFRhYmxlIGV4dGVuZHMgVGFibGVOYW1lPERhdGFiYXNlU2NoZW1hRXh0ZW5kPj4oXG4gICAgd2RiOiBLbmV4LFxuICAgIHRhYmxlTmFtZTogVFRhYmxlLFxuICAgIG9wdGlvbnM/OiBJbnNlcnRPbmx5T3B0aW9ucyxcbiAgKTogUHJvbWlzZTxJZFR5cGU8RGF0YWJhc2VTY2hlbWFFeHRlbmQsIFRUYWJsZT5bXT4ge1xuICAgIHJldHVybiB0aGlzLnVwc2VydE9ySW5zZXJ0KHdkYiwgdGFibGVOYW1lLCBcImluc2VydFwiLCBvcHRpb25zKTtcbiAgfVxuXG4gIGFzeW5jIHVwc2VydE9ySW5zZXJ0PFRUYWJsZSBleHRlbmRzIFRhYmxlTmFtZTxEYXRhYmFzZVNjaGVtYUV4dGVuZD4+KFxuICAgIHdkYjogS25leCxcbiAgICB0YWJsZU5hbWU6IFRUYWJsZSxcbiAgICBtb2RlOiBcInVwc2VydFwiIHwgXCJpbnNlcnRcIixcbiAgICBvcHRpb25zPzogVXBzZXJ0T3B0aW9uczxUVGFibGU+LFxuICApOiBQcm9taXNlPElkVHlwZTxEYXRhYmFzZVNjaGVtYUV4dGVuZCwgVFRhYmxlPltdPiB7XG4gICAgaWYgKCF0aGlzLmhhc1RhYmxlKHRhYmxlTmFtZSkpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCB0YWJsZSA9IHRoaXMudGFibGVzLmdldCh0YWJsZU5hbWUpO1xuICAgIGlmICh0YWJsZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYOyhtOyerO2VmOyngCDslYrripQg7YWM7J2067iUICR7dGFibGVOYW1lfeyXkCB1cHNlcnQg7JqU7LKtYCk7XG4gICAgfSBlbHNlIGlmICh0YWJsZS5yb3dzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAke3RhYmxlTmFtZX3sl5AgdXBzZXJ0IO2VoCDrjbDsnbTthLDqsIAg7JeG7Iq164uI64ukLmApO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHRhYmxlLnJvd3Muc29tZSgocm93KSA9PlxuICAgICAgICBPYmplY3QuZW50cmllcyhyb3cpLnNvbWUoKFssIHZhbHVlXSkgPT4gaXNSZWZGaWVsZCh2YWx1ZSkgJiYgdmFsdWUub2YgIT09IHRhYmxlTmFtZSksXG4gICAgICApXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7dGFibGVOYW1lfSDtlbTqsrDrkJjsp4Ag7JWK7J2AIOywuOyhsOqwgCDsnojsirXri4jri6QuYCk7XG4gICAgfVxuXG4gICAgLy8g7KCE7LK0IO2FjOydtOu4lCDsiJztmoztlZjsl6wg7ZiE7J6sIO2FjOydtOu4lCDssLjsobDtlZjripQg66qo65OgIO2FjOydtOu4lCDstpTstpxcbiAgICBjb25zdCB7IHJlZmVyZW5jZXMsIHJlZlRhYmxlcyB9ID0gQXJyYXkuZnJvbSh0aGlzLnRhYmxlcykucmVkdWNlKFxuICAgICAgKHIsIFssIGNhbmRpZGF0ZVRhYmxlXSkgPT4ge1xuICAgICAgICBjb25zdCByZWZlcmVuY2UgPSBBcnJheS5mcm9tKGNhbmRpZGF0ZVRhYmxlLnJlZmVyZW5jZXMudmFsdWVzKCkpLmZpbmQoKHJlZikgPT5cbiAgICAgICAgICByZWYuaW5jbHVkZXMoYCR7dGFibGVOYW1lfS5gKSxcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKHJlZmVyZW5jZSkge1xuICAgICAgICAgIHIucmVmZXJlbmNlcy5wdXNoKHJlZmVyZW5jZSk7XG4gICAgICAgICAgci5yZWZUYWJsZXMucHVzaChjYW5kaWRhdGVUYWJsZSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcjtcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIFNBRkVUWTog7L+866asIOu5jOuNlOydmCDsoJzrhKTrpq0g6rOE7JW96rO8IOyEoO2WiSDqsoDspp3snbQg7J20IO2DgOyeheydhCDrs7TsnqXtlanri4jri6QuXG4gICAgICAgIHJlZmVyZW5jZXM6IFtdIGFzIHN0cmluZ1tdLFxuICAgICAgICAvLyBTQUZFVFk6IOy/vOumrCDruYzrjZTsnZgg7KCc64Sk66atIOqzhOyVveqzvCDshKDtlokg6rKA7Kad7J20IOydtCDtg4DsnoXsnYQg67O07J6l7ZWp64uI64ukLlxuICAgICAgICByZWZUYWJsZXM6IFtdIGFzIFRhYmxlRGF0YVtdLFxuICAgICAgfSxcbiAgICApO1xuICAgIGNvbnN0IGV4dHJhY3RGaWVsZHMgPSB1bmlxdWUocmVmZXJlbmNlcylcbiAgICAgIC5tYXAoKHJlZmVyZW5jZSkgPT4gcmVmZXJlbmNlLnNwbGl0KFwiLlwiKVsxXSlcbiAgICAgIC5maWx0ZXIoKGZpZWxkKTogZmllbGQgaXMgc3RyaW5nID0+IGZpZWxkICE9PSB1bmRlZmluZWQpO1xuXG4gICAgLy8g7J2Y7KG07ISxIOyInOyEnOyXkCDrlLDrnbwg66CI67Ko67OEIOq3uOujue2ZlCAo7J6Q6riwIOywuOyhsOqwgCDsl4bsnLzrqbQgTGV2ZWwgMCDtlZjrgpgpXG4gICAgY29uc3QgeyBsZXZlbHMsIGhhc0NpcmN1bGFyIH0gPSB0aGlzLmJ1aWxkSW5zZXJ0TGV2ZWxzKHRhYmxlLnJvd3MsIHRhYmxlTmFtZSk7XG5cbiAgICBpZiAoaGFzQ2lyY3VsYXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJHt0YWJsZU5hbWV97JeQIOyInO2ZmCDsnpDquLAg7LC47KGw6rCAIOyeiOyKteuLiOuLpC5gKTtcbiAgICB9XG5cbiAgICBjb25zdCB1dWlkTWFwID0gbmV3IE1hcDxzdHJpbmcsIFVwc2VydFJvdyAmIHsgaWQ6IG51bWJlciB8IHN0cmluZyB9PigpO1xuICAgIGNvbnN0IGFsbElkczogKG51bWJlciB8IHN0cmluZylbXSA9IFtdO1xuXG4gICAgLy8g66CI67Ko67OE66GcIOyInOywqCDsspjrpqxcbiAgICBmb3IgKGxldCBsZXZlbElkeCA9IDA7IGxldmVsSWR4IDwgbGV2ZWxzLmxlbmd0aDsgbGV2ZWxJZHgrKykge1xuICAgICAgY29uc3QgbGV2ZWxSb3dzID0gbGV2ZWxzW2xldmVsSWR4XTtcbiAgICAgIGxvZ2dlci5kZWJ1ZyhcIlByb2Nlc3NpbmcgUXVlcnkgTGV2ZWw6IHtjdXJyZW50fSAvIHt0b3RhbH1cIiwge1xuICAgICAgICBjdXJyZW50OiBsZXZlbElkeCArIDEsXG4gICAgICAgIHRvdGFsOiBsZXZlbHMubGVuZ3RoLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIOydtOyghCDroIjrsqjsl5DshJwg7Ja77J2AIElE66GcIOyekOq4sCDssLjsobAg7ZW06rKwXG4gICAgICBjb25zdCByZXNvbHZlZFJvd3MgPSBsZXZlbFJvd3MubWFwKChyb3cpID0+IHtcbiAgICAgICAgY29uc3QgcmVzb2x2ZWQgPSB7IC4uLnJvdyB9O1xuICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhyb3cpKSB7XG4gICAgICAgICAgaWYgKGlzUmVmRmllbGQodmFsdWUpICYmIHZhbHVlLm9mID09PSB0YWJsZU5hbWUpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IHV1aWRNYXAuZ2V0KHZhbHVlLnV1aWQpO1xuXG4gICAgICAgICAgICBpZiAoIXBhcmVudCkgdGhyb3cgbmV3IEVycm9yKGDsobTsnqztlZjsp4Ag7JWK64qUIHV1aWQgJHt2YWx1ZS51dWlkfSAtLSBpbiAke3RhYmxlTmFtZX1gKTtcblxuICAgICAgICAgICAgLy8gU0FGRVRZOiDsv7zrpqwg67mM642U7J2YIOygnOuEpOumrSDqs4Tslb3qs7wg7ISg7ZaJIOqygOymneydtCDsnbQg7YOA7J6F7J2EIOuztOyepe2VqeuLiOuLpC5cbiAgICAgICAgICAgIHJlc29sdmVkW2tleV0gPSAocGFyZW50IGFzIFVwc2VydFJvdylbdmFsdWUudXNlID8/IFwiaWRcIl07XG5cbiAgICAgICAgICAgIE5haXRlLnQoXCJwdXJpOnViLXJlZi1yZXNvbHZlZFwiLCB7XG4gICAgICAgICAgICAgIHRhYmxlTmFtZSxcbiAgICAgICAgICAgICAgZmllbGQ6IGtleSxcbiAgICAgICAgICAgICAgZnJvbTogeyBvZjogdmFsdWUub2YsIHV1aWQ6IHZhbHVlLnV1aWQsIHVzZTogdmFsdWUudXNlID8/IFwiaWRcIiB9LFxuICAgICAgICAgICAgICB0bzogcmVzb2x2ZWRba2V5XSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzb2x2ZWQ7XG4gICAgICB9KTtcblxuICAgICAgLy8g7ZiE7J6sIOugiOuyqCB1cHNlcnRcbiAgICAgIGNvbnN0IGNodW5rU2l6ZSA9IG9wdGlvbnM/LmNodW5rU2l6ZTtcbiAgICAgIGNvbnN0IGxldmVsQ2h1bmtzID0gY2h1bmtTaXplID8gY2x1c3RlcihyZXNvbHZlZFJvd3MsIGNodW5rU2l6ZSkgOiBbcmVzb2x2ZWRSb3dzXTtcbiAgICAgIGNvbnN0IHNlbGVjdEZpZWxkcyA9IHVuaXF1ZShbXCJpZFwiLCAuLi5leHRyYWN0RmllbGRzXSk7XG5cbiAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBsZXZlbENodW5rcy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgY29uc3QgZGF0YUNodW5rID0gbGV2ZWxDaHVua3NbaW5kZXhdO1xuICAgICAgICBpZiAoZGF0YUNodW5rLmxlbmd0aCA9PT0gMCkgY29udGludWU7XG4gICAgICAgIGxvZ2dlci5kZWJ1ZyhcIlByb2Nlc3NpbmcgQ2h1bms6IHtjdXJyZW50fSAvIHt0b3RhbH1cIiwge1xuICAgICAgICAgIGN1cnJlbnQ6IGluZGV4ICsgMSxcbiAgICAgICAgICB0b3RhbDogbGV2ZWxDaHVua3MubGVuZ3RoLFxuICAgICAgICB9KTtcblxuICAgICAgICAvLyB1dWlk66W8IOuzhOuPhOuhnCDrs7TqtIDtlZjqs6AsIERC7JeQIOyggOyepe2VoCDrjbDsnbTthLDsl5DshJwg7KCc6rGwXG4gICAgICAgIC8vIFNBRkVUWTog7L+866asIOu5jOuNlOydmCDsoJzrhKTrpq0g6rOE7JW96rO8IOyEoO2WiSDqsoDspp3snbQg7J20IO2DgOyeheydhCDrs7TsnqXtlanri4jri6QuXG4gICAgICAgIGNvbnN0IG9yaWdpbmFsVXVpZHMgPSBkYXRhQ2h1bmsubWFwKChyKSA9PiByLnV1aWQgYXMgc3RyaW5nKTtcbiAgICAgICAgY29uc3QgZGF0YUZvckRiID0gZGF0YUNodW5rLm1hcCgocm93KSA9PiB7XG4gICAgICAgICAgY29uc3QgcmVzdCA9IHsgLi4ucm93IH07XG4gICAgICAgICAgZGVsZXRlIHJlc3QudXVpZDtcbiAgICAgICAgICByZXR1cm4gcmVzdDtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgbGV0IHJlc3VsdFJvd3M6IChVcHNlcnRSb3cgJiB7IGlkOiBudW1iZXIgfCBzdHJpbmcgfSlbXTtcblxuICAgICAgICBpZiAobW9kZSA9PT0gXCJpbnNlcnRcIikge1xuICAgICAgICAgIC8vIElOU0VSVCDrqqjrk5wgLSBSRVRVUk5JTkcg7IKs7JqpXG4gICAgICAgICAgcmVzdWx0Um93cyA9IGF3YWl0IHdkYi5pbnNlcnQoZGF0YUZvckRiKS5pbnRvKHRhYmxlTmFtZSkucmV0dXJuaW5nKHNlbGVjdEZpZWxkcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gVVBTRVJUIOuqqOuTnCAtIGlkIOyXhuuKlCByb3frk6TsnZggaWTrpbwg7IKs7KCEIOyhsO2ajOuhnCDssYTsmrDquLBcbiAgICAgICAgICBjb25zdCByb3dzV2l0aG91dElkID0gZGF0YUZvckRiLmZpbHRlcigocm93KSA9PiAhcm93LmlkKTtcblxuICAgICAgICAgIGlmIChyb3dzV2l0aG91dElkLmxlbmd0aCA+IDAgJiYgdGFibGUudW5pcXVlSW5kZXhlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAvLyDrqqjrk6AgdW5pcXVlSW5kZXhlc+uhnCDquLDsobQg66CI7L2U65OcIOyhsO2ajFxuICAgICAgICAgICAgZm9yIChjb25zdCB1bmlxdWVJbmRleCBvZiB0YWJsZS51bmlxdWVJbmRleGVzKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGNvbHVtbnMgPSB1bmlxdWVJbmRleC5jb2x1bW5zLm1hcCgoYykgPT4gYy5uYW1lKTtcblxuICAgICAgICAgICAgICAvLyDsobDtmoztlaAg7KGw6rG065OkIOy2lOy2nCAo6rCBIHJvd+ydmCB1bmlxdWUg7Lus65+8IOqwkuuTpClcbiAgICAgICAgICAgICAgY29uc3QgY29uZGl0aW9uczogdW5rbm93bltdW10gPSBbXTtcbiAgICAgICAgICAgICAgZm9yIChjb25zdCByb3cgb2Ygcm93c1dpdGhvdXRJZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlcyA9IGNvbHVtbnMubWFwKChjb2wpID0+IHJvd1tjb2xdKTtcbiAgICAgICAgICAgICAgICAvLyBudWxs7J20IO2PrO2VqOuQnCDsobDqsbTsnYAg7KCc7Jm4IChQb3N0Z3JlU1FMIFVOSVFVReuKlCBOVUxMIOustOyLnClcbiAgICAgICAgICAgICAgICBpZiAoIXZhbHVlcy5zb21lKCh2KSA9PiB2ID09PSBudWxsIHx8IHYgPT09IHVuZGVmaW5lZCkpIHtcbiAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbnMucHVzaCh2YWx1ZXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmIChjb25kaXRpb25zLmxlbmd0aCA9PT0gMCkgY29udGludWU7XG5cbiAgICAgICAgICAgICAgLy8g67Cw7LmYIFNFTEVDVFxuICAgICAgICAgICAgICAvLyBTQUZFVFk6IOy/vOumrCDruYzrjZTsnZgg7KCc64Sk66atIOqzhOyVveqzvCDshKDtlokg6rKA7Kad7J20IOydtCDtg4DsnoXsnYQg67O07J6l7ZWp64uI64ukLlxuICAgICAgICAgICAgICBjb25zdCBleGlzdGluZ1Jvd3MgPSAoYXdhaXQgd2RiKHRhYmxlTmFtZSlcbiAgICAgICAgICAgICAgICAvLyBTQUZFVFk6IOy/vOumrCDruYzrjZTsnZgg7KCc64Sk66atIOqzhOyVveqzvCDshKDtlokg6rKA7Kad7J20IOydtCDtg4DsnoXsnYQg67O07J6l7ZWp64uI64ukLlxuICAgICAgICAgICAgICAgIC53aGVyZUluKGNvbHVtbnMsIGNvbmRpdGlvbnMgYXMgVXBzZXJ0Um93W11bXSlcbiAgICAgICAgICAgICAgICAuc2VsZWN0KFwiaWRcIiwgLi4uY29sdW1ucykpIGFzIFVwc2VydFJvd1tdO1xuXG4gICAgICAgICAgICAgIC8vIE1hcCDsg53shLE6IHVuaXF1ZSDsu6zrn7wg7KGw7ZWpIOKGkiBpZFxuICAgICAgICAgICAgICBjb25zdCBleGlzdGluZ01hcCA9IG5ldyBNYXA8c3RyaW5nLCBudW1iZXIgfCBzdHJpbmc+KCk7XG4gICAgICAgICAgICAgIGZvciAoY29uc3QgZXhpc3Rpbmcgb2YgZXhpc3RpbmdSb3dzKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gY29sdW1uc1xuICAgICAgICAgICAgICAgICAgLm1hcCgoY29sKSA9PiBTdHJpbmcoZXhpc3RpbmdbY29sXSA/PyBcIlwiKSlcbiAgICAgICAgICAgICAgICAgIC5qb2luKFwiLS0tZGVsaW1pdGVyLS0tXCIpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGlkID0gZXhpc3RpbmcuaWQ7XG4gICAgICAgICAgICAgICAgaWYgKGlzTnVtYmVyVmFsdWUoaWQpIHx8IGlzU3RyaW5nVmFsdWUoaWQpKSB7XG4gICAgICAgICAgICAgICAgICBleGlzdGluZ01hcC5zZXQoa2V5LCBpZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgLy8gaWQg7JeG64qUIHJvd+uTpOyXkCDrp6Tsua3rkJjripQgaWQg7LGE7Jqw6riwXG4gICAgICAgICAgICAgIGZvciAoY29uc3Qgcm93IG9mIHJvd3NXaXRob3V0SWQpIHtcbiAgICAgICAgICAgICAgICBpZiAocm93LmlkKSBjb250aW51ZTsgLy8g7J2066+4IOuLpOuluCB1bmlxdWVJbmRleOyXkOyEnCDssYTsm4zsp4Qg6rK97JqwIOyKpO2CtVxuXG4gICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gY29sdW1ucy5tYXAoKGNvbCkgPT4gU3RyaW5nKHJvd1tjb2xdID8/IFwiXCIpKS5qb2luKFwiLS0tZGVsaW1pdGVyLS0tXCIpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nSWQgPSBleGlzdGluZ01hcC5nZXQoa2V5KTtcblxuICAgICAgICAgICAgICAgIGlmIChleGlzdGluZ0lkKSB7XG4gICAgICAgICAgICAgICAgICByb3cuaWQgPSBleGlzdGluZ0lkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIG9uQ29uZmxpY3TripQgaWTrp4wg7IKs7JqpICjrqqjrk6AgdW5pcXVlSW5kZXhlc+uKlCDsnbTrr7gg7IKs7KCEIOyhsO2ajOuhnCDsspjrpqzrkKgpXG4gICAgICAgICAgY29uc3QgY29uZmxpY3RDb2x1bW5zID0gW1wiaWRcIl07XG5cbiAgICAgICAgICBjb25zdCBhbGxDb2x1bW5zID0gT2JqZWN0LmtleXMoZGF0YUZvckRiWzBdKTtcbiAgICAgICAgICBsZXQgdXBkYXRlQ29sdW1ucyA9IGFsbENvbHVtbnMuZmlsdGVyKChjKSA9PiBjICE9PSBcImlkXCIpO1xuXG4gICAgICAgICAgLy8gaW5oZXJpdCDsmLXshZgg7LKY66asIC0gaW5oZXJpdCDsu6zrn7zsnYAgdXBkYXRlIOuMgOyDgeyXkOyEnCDsoJzsmbhcbiAgICAgICAgICBpZiAob3B0aW9ucz8uaW5oZXJpdD8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAvLyBTQUZFVFk6IOy/vOumrCDruYzrjZTsnZgg7KCc64Sk66atIOqzhOyVveqzvCDshKDtlokg6rKA7Kad7J20IOydtCDtg4DsnoXsnYQg67O07J6l7ZWp64uI64ukLlxuICAgICAgICAgICAgY29uc3QgaW5oZXJpdENvbHVtbnMgPSBvcHRpb25zLmluaGVyaXQgYXMgc3RyaW5nW107XG5cbiAgICAgICAgICAgIGNvbnN0IGV4Y2x1ZGVkRnJvbVVwZGF0ZSA9IHVwZGF0ZUNvbHVtbnMuZmlsdGVyKChjKSA9PiBpbmhlcml0Q29sdW1ucy5pbmNsdWRlcyhjKSk7XG4gICAgICAgICAgICB1cGRhdGVDb2x1bW5zID0gdXBkYXRlQ29sdW1ucy5maWx0ZXIoKGMpID0+ICFpbmhlcml0Q29sdW1ucy5pbmNsdWRlcyhjKSk7XG5cbiAgICAgICAgICAgIC8vIOyLpOygnOuhnCDsoJzsmbjrkJwg7Lus65+8IOuhnOq5hVxuICAgICAgICAgICAgaWYgKGV4Y2x1ZGVkRnJvbVVwZGF0ZS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgTmFpdGUudChcInB1cmk6dWItaW5oZXJpdFwiLCB7XG4gICAgICAgICAgICAgICAgdGFibGVOYW1lLFxuICAgICAgICAgICAgICAgIGluaGVyaXRDb2x1bW5zLFxuICAgICAgICAgICAgICAgIGV4Y2x1ZGVkRnJvbVVwZGF0ZSxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gdXBkYXRlQ29sdW1uc+qwgCDruYTslrTsnojslrTrj4QgbWVyZ2UoKeulvCDsgqzsmqntlZjsl6wg66qo65OgIO2WieydtCBSRVRVUk5JTkfrkJjrj4TroZ0g67O07J6lXG4gICAgICAgICAgY29uc3QgbWVyZ2VDb2x1bW5zID0gdXBkYXRlQ29sdW1ucy5sZW5ndGggPyB1cGRhdGVDb2x1bW5zIDogY29uZmxpY3RDb2x1bW5zO1xuXG4gICAgICAgICAgcmVzdWx0Um93cyA9IGF3YWl0IHdkYlxuICAgICAgICAgICAgLmluc2VydChkYXRhRm9yRGIpXG4gICAgICAgICAgICAuaW50byh0YWJsZU5hbWUpXG4gICAgICAgICAgICAub25Db25mbGljdChjb25mbGljdENvbHVtbnMpXG4gICAgICAgICAgICAubWVyZ2UobWVyZ2VDb2x1bW5zKVxuICAgICAgICAgICAgLnJldHVybmluZyhzZWxlY3RGaWVsZHMpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9yaWdpbmFsVXVpZHMubGVuZ3RoICE9PSByZXN1bHRSb3dzLmxlbmd0aCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgJHt0YWJsZU5hbWV9OiByZWdpc3Rlci9yZXR1cm5pbmcg67aI7J287LmYYCk7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlc3VsdFJvd3MubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICB1dWlkTWFwLnNldChvcmlnaW5hbFV1aWRzW2ldLCByZXN1bHRSb3dzW2ldKTtcbiAgICAgICAgICBhbGxJZHMucHVzaChyZXN1bHRSb3dzW2ldLmlkKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIO2VtOuLuSDthYzsnbTruJQg7LC47KGw66W8IOyLpOygnCDrsLjrpZjroZwg67OA6rK9XG4gICAgZm9yIChjb25zdCByZWZlcmVuY2luZ1RhYmxlIG9mIHJlZlRhYmxlcykge1xuICAgICAgcmVmZXJlbmNpbmdUYWJsZS5yb3dzID0gcmVmZXJlbmNpbmdUYWJsZS5yb3dzLm1hcCgocm93KSA9PiB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHJvdykpIHtcbiAgICAgICAgICBjb25zdCBwcm9wID0gcm93W2tleV07XG4gICAgICAgICAgaWYgKGlzUmVmRmllbGQocHJvcCkgJiYgcHJvcC5vZiA9PT0gdGFibGVOYW1lKSB7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnQgPSB1dWlkTWFwLmdldChwcm9wLnV1aWQpO1xuICAgICAgICAgICAgaWYgKCFwYXJlbnQpIHtcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihwcm9wKTtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGDsobTsnqztlZjsp4Ag7JWK64qUIHV1aWQgJHtwcm9wLnV1aWR9IC0tIGluICR7dGFibGVOYW1lfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gU0FGRVRZOiDsv7zrpqwg67mM642U7J2YIOygnOuEpOumrSDqs4Tslb3qs7wg7ISg7ZaJIOqygOymneydtCDsnbQg7YOA7J6F7J2EIOuztOyepe2VqeuLiOuLpC5cbiAgICAgICAgICAgIGNvbnN0IHJlc29sdmVkVmFsdWUgPSBwYXJlbnRbcHJvcC51c2UgPz8gXCJpZFwiXTtcbiAgICAgICAgICAgIHJvd1trZXldID0gcmVzb2x2ZWRWYWx1ZTtcblxuICAgICAgICAgICAgTmFpdGUudChcInB1cmk6dWItcmVmLXJlc29sdmVkXCIsIHtcbiAgICAgICAgICAgICAgdGFibGVOYW1lLFxuICAgICAgICAgICAgICBmaWVsZDoga2V5LFxuICAgICAgICAgICAgICBmcm9tOiB7IG9mOiBwcm9wLm9mLCB1dWlkOiBwcm9wLnV1aWQsIHVzZTogcHJvcC51c2UgPz8gXCJpZFwiIH0sXG4gICAgICAgICAgICAgIHRvOiByZXNvbHZlZFZhbHVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByb3c7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucz8uY2xlYW5PcnBoYW5zKSB7XG4gICAgICBjb25zdCBjbGVhbk9ycGhhbnMgPSBvcHRpb25zLmNsZWFuT3JwaGFucztcbiAgICAgIGNvbnN0IGZrQ29sdW1ucyA9IGFzQXJyYXkoY2xlYW5PcnBoYW5zKTtcblxuICAgICAgLy8g7ZiE7J6sIHJlZ2lzdGVy65CcIOugiOy9lOuTnOuTpOydmCBGSyDqsJLrk6Qg7LaU7LacXG4gICAgICBjb25zdCBma0NvbmRpdGlvbnMgPSBma0NvbHVtbnMubWFwKChma0NvbCkgPT4ge1xuICAgICAgICBjb25zdCBma1ZhbHVlcyA9IFsuLi5uZXcgU2V0KHRhYmxlLnJvd3MubWFwKChyb3cpID0+IHJvd1tma0NvbF0pLmZpbHRlcihCb29sZWFuKSldO1xuICAgICAgICByZXR1cm4geyBjb2x1bW46IGZrQ29sLCB2YWx1ZXM6IGZrVmFsdWVzIH07XG4gICAgICB9KTtcblxuICAgICAgLy8g66qo65OgIEZLIOy7rOufvOyXkCDqsJLsnbQg7J6I64qUIOqyveyasOyXkOunjCDsgq3soJwg7Iuk7ZaJXG4gICAgICBpZiAoZmtDb25kaXRpb25zLmV2ZXJ5KChmYykgPT4gZmMudmFsdWVzLmxlbmd0aCA+IDApKSB7XG4gICAgICAgIGxldCBkZWxldGVRdWVyeSA9IHdkYih0YWJsZU5hbWUpO1xuXG4gICAgICAgIC8vIOqwgSBGSyDsu6zrn7zsl5Ag64yA7ZWcIFdIRVJFIElOIOyhsOqxtCDstpTqsIBcbiAgICAgICAgZm9yIChjb25zdCB7IGNvbHVtbiwgdmFsdWVzIH0gb2YgZmtDb25kaXRpb25zKSB7XG4gICAgICAgICAgLy8gU0FGRVRZOiDsv7zrpqwg67mM642U7J2YIOygnOuEpOumrSDqs4Tslb3qs7wg7ISg7ZaJIOqygOymneydtCDsnbQg7YOA7J6F7J2EIOuztOyepe2VqeuLiOuLpC5cbiAgICAgICAgICBkZWxldGVRdWVyeSA9IGRlbGV0ZVF1ZXJ5LndoZXJlSW4oY29sdW1uLCB2YWx1ZXMgYXMgS25leC5WYWx1ZVtdKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIOuwqeq4iCB1cHNlcnTtlZwgSUTripQg7KCc7Jm4XG4gICAgICAgIGRlbGV0ZVF1ZXJ5ID0gZGVsZXRlUXVlcnkud2hlcmVOb3RJbihcImlkXCIsIGFsbElkcyk7XG5cbiAgICAgICAgY29uc3QgZGVsZXRlZENvdW50ID0gYXdhaXQgZGVsZXRlUXVlcnkuZGVsZXRlKCk7XG5cbiAgICAgICAgTmFpdGUudChcInB1cmk6dWItY2xlYW4tb3JwaGFuc1wiLCB7XG4gICAgICAgICAgdGFibGVOYW1lLFxuICAgICAgICAgIGNsZWFuT3JwaGFuczogZmtDb2x1bW5zLFxuICAgICAgICAgIGRlbGV0ZWRDb3VudCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8g7ZW064u5IO2FjOydtOu4lOydmCDrjbDsnbTthLAg7LSI6riw7ZmUXG4gICAgdGFibGUucm93cyA9IFtdO1xuICAgIHRhYmxlLnJlZmVyZW5jZXMuY2xlYXIoKTtcbiAgICB0YWJsZS51bmlxdWVzTWFwLmNsZWFyKCk7XG5cbiAgICBOYWl0ZS50KFwicHVyaTp1Yi11cHNlcnRlZFwiLCB7XG4gICAgICB0YWJsZU5hbWUsXG4gICAgICBtb2RlLFxuICAgICAgcm93Q291bnQ6IGFsbElkcy5sZW5ndGgsXG4gICAgICByZXR1cm5lZElkczogYWxsSWRzLFxuICAgIH0pO1xuXG4gICAgLy8gU0FGRVRZOiDsv7zrpqwg67mM642U7J2YIOygnOuEpOumrSDqs4Tslb3qs7wg7ISg7ZaJIOqygOymneydtCDsnbQg7YOA7J6F7J2EIOuztOyepe2VqeuLiOuLpC5cbiAgICByZXR1cm4gYWxsSWRzIGFzIElkVHlwZTxEYXRhYmFzZVNjaGVtYUV4dGVuZCwgVFRhYmxlPltdO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlQmF0Y2goXG4gICAgd2RiOiBLbmV4LFxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICBjaHVua1NpemU/OiBudW1iZXI7XG4gICAgICB3aGVyZT86IHN0cmluZyB8IHN0cmluZ1tdO1xuICAgIH0sXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIG9wdGlvbnMgPSB7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgY2h1bmtTaXplOiBvcHRpb25zPy5jaHVua1NpemUgPz8gNTAwLFxuICAgICAgd2hlcmU6IG9wdGlvbnM/LndoZXJlID8/IFwiaWRcIixcbiAgICB9O1xuXG4gICAgaWYgKCF0aGlzLmhhc1RhYmxlKHRhYmxlTmFtZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgdGFibGUgPSB0aGlzLnRhYmxlcy5nZXQodGFibGVOYW1lKTtcbiAgICBpZiAoIXRhYmxlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYOuTseuhneuQmOyngCDslYrsnYAg7YWM7J2067iUICR7dGFibGVOYW1lfeyXkCB1cGRhdGVCYXRjaCDsmpTssq1gKTtcbiAgICB9IGVsc2UgaWYgKHRhYmxlLnJvd3MubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgd2hlcmVDb2x1bW5zID0gQXJyYXkuaXNBcnJheShvcHRpb25zLndoZXJlKSA/IG9wdGlvbnMud2hlcmUgOiBbb3B0aW9ucy53aGVyZSA/PyBcImlkXCJdO1xuICAgIGNvbnN0IHJvd3MgPSB0YWJsZS5yb3dzLm1hcCgoX3JvdykgPT4ge1xuICAgICAgY29uc3QgeyB1dWlkOiBfLCAuLi5yb3cgfSA9IF9yb3c7IC8vIHV1aWQg7KCc7Jm4XG4gICAgICAvLyBTQUZFVFk6IOy/vOumrCDruYzrjZTsnZgg7KCc64Sk66atIOqzhOyVveqzvCDshKDtlokg6rKA7Kad7J20IOydtCDtg4DsnoXsnYQg67O07J6l7ZWp64uI64ukLlxuICAgICAgcmV0dXJuIHJvdyBhcyBSb3dXaXRoSWQ8c3RyaW5nPjtcbiAgICB9KTtcblxuICAgIGF3YWl0IGJhdGNoVXBkYXRlKHdkYiwgdGFibGVOYW1lLCB3aGVyZUNvbHVtbnMsIHJvd3MsIG9wdGlvbnMuY2h1bmtTaXplKTtcblxuICAgIE5haXRlLnQoXCJwdXJpOnViLWJhdGNoLXVwZGF0ZWRcIiwge1xuICAgICAgdGFibGVOYW1lLFxuICAgICAgcm93Q291bnQ6IHJvd3MubGVuZ3RoLFxuICAgICAgd2hlcmVDb2x1bW5zLFxuICAgIH0pO1xuXG4gICAgLy8gdXBkYXRlQmF0Y2gg7JmE66OMIO2bhCDsspjrpqzrkJwg642w7J207YSwIOygnOqxsFxuICAgIHRhYmxlLnJvd3MgPSBbXTtcbiAgICB0YWJsZS5yZWZlcmVuY2VzLmNsZWFyKCk7XG4gICAgdGFibGUudW5pcXVlc01hcC5jbGVhcigpO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBQcml2YXRlIEhlbHBlciBNZXRob2RzXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogcm93c+ulvCDsnZjsobTshLEg7Iic7ISc7JeQIOuUsOudvCDroIjrsqjrs4TroZwg6re466O57ZmUXG4gICAqIC0g7J6Q6riwIOywuOyhsCDsl4bripQg6rK97JqwIDog66qo65OgIHJvd3PqsIAgTGV2ZWwgMFxuICAgKiAtIOyekOq4sCDssLjsobAg7J6I64qUIOqyveyasCA6IOyekOq4sCDssLjsobAg6rSA6rOE66W8IOychOyDgSDsoJXroKztlZjsl6wg66CI67Ko67OE66GcIOq3uOujue2ZlFxuICAgKi9cbiAgcHJpdmF0ZSBidWlsZEluc2VydExldmVscyhyb3dzOiBVcHNlcnRSb3dbXSwgdGFibGVOYW1lOiBzdHJpbmcpIHtcbiAgICAvLyAxLiDsnpDquLAg7LC47KGw6rCAIOyXhuycvOuptCDtlZwg66CI67Ko66GcIOyymOumrFxuICAgIGNvbnN0IGhhc1NlbGZSZWYgPSByb3dzXG4gICAgICAuZmxhdE1hcCgocm93KSA9PiBPYmplY3QudmFsdWVzKHJvdykpXG4gICAgICAuc29tZSgodmFsdWUpID0+IGlzUmVmRmllbGQodmFsdWUpICYmIHZhbHVlLm9mID09PSB0YWJsZU5hbWUpO1xuICAgIGlmICghaGFzU2VsZlJlZikgcmV0dXJuIHsgbGV2ZWxzOiBbcm93c10sIGhhc0NpcmN1bGFyOiBmYWxzZSB9O1xuXG4gICAgLy8gMi4gdXVpZCDihpIgcm93IOunpO2VkSAo7KSR67O1IHV1aWQg67Cp7KeAKVxuICAgIGNvbnN0IHJvd0J5VXVpZCA9IG5ldyBNYXA8c3RyaW5nLCBVcHNlcnRSb3c+KCk7XG4gICAgZm9yIChjb25zdCByb3cgb2Ygcm93cykge1xuICAgICAgLy8gU0FGRVRZOiDsv7zrpqwg67mM642U7J2YIOygnOuEpOumrSDqs4Tslb3qs7wg7ISg7ZaJIOqygOymneydtCDsnbQg7YOA7J6F7J2EIOuztOyepe2VqeuLiOuLpC5cbiAgICAgIGNvbnN0IHV1aWQgPSByb3cudXVpZCBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICBpZiAoIXV1aWQpIHRocm93IG5ldyBFcnJvcihgYnVpbGRJbnNlcnRMZXZlbHM6IHV1aWTqsIAg7JeG64qUIHJvdyAtLSBpbiAke3RhYmxlTmFtZX1gKTtcbiAgICAgIHJvd0J5VXVpZC5zZXQodXVpZCwgcm93KTtcbiAgICB9XG5cbiAgICBsZXQgcGVuZGluZyA9IEFycmF5LmZyb20ocm93QnlVdWlkLnZhbHVlcygpKTtcbiAgICBjb25zdCBsZXZlbHM6IFVwc2VydFJvd1tdW10gPSBbXTtcbiAgICBjb25zdCBpbnNlcnRlZCA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gICAgLy8gMy4g66CI67Ko67OEIOu2hOulmFxuICAgIHdoaWxlIChwZW5kaW5nLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRMZXZlbDogVXBzZXJ0Um93W10gPSBbXTtcbiAgICAgIGNvbnN0IG5leHRQZW5kaW5nOiBVcHNlcnRSb3dbXSA9IFtdO1xuXG4gICAgICBmb3IgKGNvbnN0IHJvdyBvZiBwZW5kaW5nKSB7XG4gICAgICAgIC8vIOydtCByb3fqsIAg7LC47KGw7ZWY64qUIOyekOq4sCDssLjsobDrk6RcbiAgICAgICAgLy8gU0FGRVRZOiDsv7zrpqwg67mM642U7J2YIOygnOuEpOumrSDqs4Tslb3qs7wg7ISg7ZaJIOqygOymneydtCDsnbQg7YOA7J6F7J2EIOuztOyepe2VqeuLiOuLpC5cbiAgICAgICAgY29uc3Qgc2VsZlJlZnMgPSBPYmplY3QudmFsdWVzKHJvdykuZmlsdGVyKFxuICAgICAgICAgICh2YWx1ZSkgPT4gaXNSZWZGaWVsZCh2YWx1ZSkgJiYgdmFsdWUub2YgPT09IHRhYmxlTmFtZSxcbiAgICAgICAgKSBhcyBVQlJlZltdO1xuXG4gICAgICAgIC8vIOywuOyhsO2VmOuKlCDrqqjrk6AgdXVpZOqwgCDsnbTrr7ggaW5zZXJ0ZWTsl5Ag7J6I7Ja07JW8IOydtOuyiCDroIjrsqjsl5Ag7Y+s7ZWoXG4gICAgICAgIGNvbnN0IGNhbkluc2VydCA9IHNlbGZSZWZzLmV2ZXJ5KChyZWYpID0+IHtcbiAgICAgICAgICBpZiAoIXJvd0J5VXVpZC5oYXMocmVmLnV1aWQpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYOyhtOyerO2VmOyngCDslYrripQgdXVpZCAke3JlZi51dWlkfSAtLSBpbiAke3RhYmxlTmFtZX1gKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGluc2VydGVkLmhhcyhyZWYudXVpZCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChjYW5JbnNlcnQpIHtcbiAgICAgICAgICBjdXJyZW50TGV2ZWwucHVzaChyb3cpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5leHRQZW5kaW5nLnB1c2gocm93KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyDsiJztmZgg7LC47KGwIOqwkOyngFxuICAgICAgaWYgKGN1cnJlbnRMZXZlbC5sZW5ndGggPT09IDApIHJldHVybiB7IGxldmVsczogW10sIGhhc0NpcmN1bGFyOiB0cnVlIH07XG5cbiAgICAgIC8vIOugiOuyqCDtmZXsoJUgKyBpbnNlcnRlZCDqsLHsi6BcbiAgICAgIGxldmVscy5wdXNoKGN1cnJlbnRMZXZlbCk7XG4gICAgICBmb3IgKGNvbnN0IHJvdyBvZiBjdXJyZW50TGV2ZWwpIHtcbiAgICAgICAgLy8gU0FGRVRZOiDsv7zrpqwg67mM642U7J2YIOygnOuEpOumrSDqs4Tslb3qs7wg7ISg7ZaJIOqygOymneydtCDsnbQg7YOA7J6F7J2EIOuztOyepe2VqeuLiOuLpC5cbiAgICAgICAgaW5zZXJ0ZWQuYWRkKHJvdy51dWlkIGFzIHN0cmluZyk7XG4gICAgICB9XG5cbiAgICAgIHBlbmRpbmcgPSBuZXh0UGVuZGluZztcbiAgICB9XG5cbiAgICByZXR1cm4geyBsZXZlbHMsIGhhc0NpcmN1bGFyOiBmYWxzZSB9O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBeUVBLFNBQWdCLFdBQWtCLE9BQXNDO0NBQ3RFLE9BQU8sY0FBYyxLQUFLLEtBQUssUUFBUSxTQUFTLFVBQVU7QUFDNUQ7OztxQkFyRXdEO1lBQ2xCO1lBTUU7b0JBQzRDO1lBQ3pCO29CQUNkO0NBSXZDLFNBQVMsVUFBVTtFQUFDO0VBQVU7RUFBWTtDQUFnQixDQUFDO0NBeURwRCxnQkFBYixNQUEyQjtFQUN6QjtFQUNBLGNBQWM7R0FDWixLQUFLLHlCQUFTLElBQUksSUFBSTtFQUN4QjtFQUVBLFNBQVMsV0FBOEI7R0FDckMsTUFBTSxRQUFRLEtBQUssT0FBTyxJQUFJLFNBQVM7R0FDdkMsSUFBSSxPQUNGLE9BQU87R0FHVCxNQUFNLG1CQUFtQjtJQUN2QixJQUFJO0tBQ0YsT0FBTyxjQUFjLGFBQWEsU0FBUztJQUM3QyxRQUFRO0tBQ04sT0FBTztJQUNUO0dBQ0YsRUFBQSxDQUFHO0dBRUgsTUFBTSxZQUFZO0lBQ2hCLDRCQUFZLElBQUksSUFBWTtJQUM1QixNQUFNLENBQUM7SUFDUCxlQUFlLFdBQVcsaUJBQWlCLENBQUM7SUFDNUMsNEJBQVksSUFBSSxJQUFvQjtJQUNwQyxhQUFhLFdBQVcsZUFBZSxDQUFDO0dBQzFDO0dBQ0EsS0FBSyxPQUFPLElBQUksV0FBVyxTQUFTO0dBQ3BDLE9BQU87RUFDVDtFQUVBLFNBQVMsV0FBNEI7R0FDbkMsT0FBTyxLQUFLLE9BQU8sSUFBSSxTQUFTO0VBQ2xDO0VBRUEsU0FBNkIsV0FBbUIsS0FBaUI7R0FDL0QsTUFBTSxRQUFRLEtBQUssU0FBUyxTQUFTO0dBR3JDLE1BQU0sYUFBYSxNQUFNLGNBQ3RCLEtBQUssYUFBYTtJQUNqQixNQUFNLGlCQUFpQixTQUFTLFFBQVEsS0FBSyxXQUFXO0tBRXRELE1BQU0sTUFBTSxJQUFJLE9BQU87S0FDdkIsSUFBSSxXQUFXLEdBQUcsR0FDaEIsT0FBTyxJQUFJO1VBR1gsT0FBTyxJQUFJLE9BQU8sU0FBNkIsV0FBVztJQUU5RCxDQUFDO0lBR0QsSUFBSSxlQUFlLFdBQVcsR0FDNUIsT0FBTztJQUVULE9BQU8sZUFBZSxLQUFLLGdCQUFnQjtHQUM3QyxDQUFDLENBQUMsQ0FDRCxPQUFPLFdBQVc7R0FHckIsTUFBTSxFQUFFLE1BQU0sb0JBQW9CO0lBRWhDLElBQUksV0FBVyxTQUFTLEdBQ3RCO1VBQUssTUFBTSxhQUFhLFlBQ3RCLElBQUksTUFBTSxXQUFXLElBQUksU0FBUyxHQUNoQyxPQUFPO01BQ0wsTUFBTSxjQUFjLE1BQU0sV0FBVyxJQUFJLFNBQVMsR0FBRyxzQkFBc0I7TUFDM0UsVUFBVTtLQUNaO0lBRUo7SUFJRixPQUFPO0tBQUUsTUFBTSxXQUFXO0tBQUcsVUFBVTtJQUFNO0dBQy9DLEVBQUEsQ0FBRztHQUdILElBQUksV0FBVyxTQUFTLEdBQ3RCLEtBQUssTUFBTSxhQUFhLFlBQ3RCLE1BQU0sV0FBVyxJQUFJLFdBQVcsSUFBSTtHQU14QyxNQUFNLGdCQUFnQixPQUFPLFlBQzNCLE9BQU8sUUFBUSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxjQUFjO0lBQzlDLElBQUksV0FBVyxRQUFRLEdBQUc7S0FDeEIsU0FBUyxRQUFRO0tBQ2pCLE1BQU0sV0FBVyxJQUFJLEdBQUcsU0FBUyxHQUFHLEdBQUcsU0FBUyxLQUFLO0tBQ3JELE9BQU8sQ0FBQyxRQUFRLFFBQVE7SUFDMUIsT0FBTyxJQUFJLE1BQU0sWUFBWSxTQUFTLE1BQU0sS0FBSyxhQUFhLE1BRTVELE9BQU8sQ0FBQyxRQUFRLEtBQUssVUFBVSxRQUFRLENBQUM7U0FDbkMsSUFBSSxRQUFRLFFBQVEsR0FFekIsT0FBTyxDQUFDLFFBQVEsUUFBUTtTQUV4QixPQUFPLENBQUMsUUFBUSxRQUFRO0dBRTVCLENBQUMsQ0FDSDtHQUVBLE1BQU0sS0FBSyxLQUFLO0lBQ2Q7SUFDQSxHQUFHO0dBQ0wsQ0FBQztHQUVELE1BQU0sU0FBZ0I7SUFDcEIsSUFBSTtJQUVKLE1BQU0sY0FBYyxjQUFjLElBQUksSUFBSSxjQUFjLE9BQU87R0FDakU7R0FFQSxNQUFNLEVBQUUsb0JBQW9CO0lBQzFCO0lBQ0EsTUFBTSxPQUFPO0lBQ2IsY0FBYztJQUNkO0dBQ0YsQ0FBQztHQUVELE9BQU87RUFDVDtFQUVBLE1BQU0sT0FDSixLQUNBLFdBQ0EsU0FDaUQ7R0FDakQsT0FBTyxLQUFLLGVBQWUsS0FBSyxXQUFXLFVBQVUsT0FBTztFQUM5RDtFQUVBLE1BQU0sV0FDSixLQUNBLFdBQ0EsU0FDaUQ7R0FDakQsT0FBTyxLQUFLLGVBQWUsS0FBSyxXQUFXLFVBQVUsT0FBTztFQUM5RDtFQUVBLE1BQU0sZUFDSixLQUNBLFdBQ0EsTUFDQSxTQUNpRDtHQUNqRCxJQUFJLENBQUMsS0FBSyxTQUFTLFNBQVMsR0FDMUIsT0FBTyxDQUFDO0dBR1YsTUFBTSxRQUFRLEtBQUssT0FBTyxJQUFJLFNBQVM7R0FDdkMsSUFBSSxVQUFVLFFBQ1osTUFBTSxJQUFJLE1BQU0sZUFBZSxVQUFVLFlBQVk7UUFDaEQsSUFBSSxNQUFNLEtBQUssV0FBVyxHQUMvQixNQUFNLElBQUksTUFBTSxHQUFHLFVBQVUsc0JBQXNCO0dBR3JELElBQ0UsTUFBTSxLQUFLLE1BQU0sUUFDZixPQUFPLFFBQVEsR0FBRyxDQUFDLENBQUMsTUFBTSxHQUFHLFdBQVcsV0FBVyxLQUFLLEtBQUssTUFBTSxPQUFPLFNBQVMsQ0FDckYsR0FFQSxNQUFNLElBQUksTUFBTSxHQUFHLFVBQVUsbUJBQW1CO0dBSWxELE1BQU0sRUFBRSxZQUFZLGNBQWMsTUFBTSxLQUFLLEtBQUssTUFBTSxDQUFDLENBQUMsUUFDdkQsR0FBRyxHQUFHLG9CQUFvQjtJQUN6QixNQUFNLFlBQVksTUFBTSxLQUFLLGVBQWUsV0FBVyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sUUFDckUsSUFBSSxTQUFTLEdBQUcsVUFBVSxFQUFFLENBQzlCO0lBQ0EsSUFBSSxXQUFXO0tBQ2IsRUFBRSxXQUFXLEtBQUssU0FBUztLQUMzQixFQUFFLFVBQVUsS0FBSyxjQUFjO0lBQ2pDO0lBRUEsT0FBTztHQUNULEdBQ0E7SUFFRSxZQUFZLENBQUM7SUFFYixXQUFXLENBQUM7R0FDZCxDQUNGO0dBQ0EsTUFBTSxnQkFBZ0IsT0FBTyxVQUFVLENBQUMsQ0FDckMsS0FBSyxjQUFjLFVBQVUsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FDM0MsUUFBUSxVQUEyQixVQUFVLE1BQVM7R0FHekQsTUFBTSxFQUFFLFFBQVEsZ0JBQWdCLEtBQUssa0JBQWtCLE1BQU0sTUFBTSxTQUFTO0dBRTVFLElBQUksYUFDRixNQUFNLElBQUksTUFBTSxHQUFHLFVBQVUsa0JBQWtCO0dBR2pELE1BQU0sMEJBQVUsSUFBSSxJQUFpRDtHQUNyRSxNQUFNLFNBQThCLENBQUM7R0FHckMsS0FBSyxJQUFJLFdBQVcsR0FBRyxXQUFXLE9BQU8sUUFBUSxZQUFZO0lBQzNELE1BQU0sWUFBWSxPQUFPO0lBQ3pCLE9BQU8sTUFBTSwrQ0FBK0M7S0FDMUQsU0FBUyxXQUFXO0tBQ3BCLE9BQU8sT0FBTztJQUNoQixDQUFDO0lBR0QsTUFBTSxlQUFlLFVBQVUsS0FBSyxRQUFRO0tBQzFDLE1BQU0sV0FBVyxFQUFFLEdBQUcsSUFBSTtLQUMxQixLQUFLLE1BQU0sQ0FBQyxLQUFLLFVBQVUsT0FBTyxRQUFRLEdBQUcsR0FDM0MsSUFBSSxXQUFXLEtBQUssS0FBSyxNQUFNLE9BQU8sV0FBVztNQUMvQyxNQUFNLFNBQVMsUUFBUSxJQUFJLE1BQU0sSUFBSTtNQUVyQyxJQUFJLENBQUMsUUFBUSxNQUFNLElBQUksTUFBTSxnQkFBZ0IsTUFBTSxLQUFLLFNBQVMsV0FBVztNQUc1RSxTQUFTLE9BQVEsT0FBcUIsTUFBTSxPQUFPO01BRW5ELE1BQU0sRUFBRSx3QkFBd0I7T0FDOUI7T0FDQSxPQUFPO09BQ1AsTUFBTTtRQUFFLElBQUksTUFBTTtRQUFJLE1BQU0sTUFBTTtRQUFNLEtBQUssTUFBTSxPQUFPO09BQUs7T0FDL0QsSUFBSSxTQUFTO01BQ2YsQ0FBQztLQUNIO0tBRUYsT0FBTztJQUNULENBQUM7SUFHRCxNQUFNLFlBQVksU0FBUztJQUMzQixNQUFNLGNBQWMsWUFBWSxRQUFRLGNBQWMsU0FBUyxJQUFJLENBQUMsWUFBWTtJQUNoRixNQUFNLGVBQWUsT0FBTyxDQUFDLE1BQU0sR0FBRyxhQUFhLENBQUM7SUFFcEQsS0FBSyxJQUFJLFFBQVEsR0FBRyxRQUFRLFlBQVksUUFBUSxTQUFTO0tBQ3ZELE1BQU0sWUFBWSxZQUFZO0tBQzlCLElBQUksVUFBVSxXQUFXLEdBQUc7S0FDNUIsT0FBTyxNQUFNLHlDQUF5QztNQUNwRCxTQUFTLFFBQVE7TUFDakIsT0FBTyxZQUFZO0tBQ3JCLENBQUM7S0FJRCxNQUFNLGdCQUFnQixVQUFVLEtBQUssTUFBTSxFQUFFLElBQWM7S0FDM0QsTUFBTSxZQUFZLFVBQVUsS0FBSyxRQUFRO01BQ3ZDLE1BQU0sT0FBTyxFQUFFLEdBQUcsSUFBSTtNQUN0QixPQUFPLEtBQUs7TUFDWixPQUFPO0tBQ1QsQ0FBQztLQUVELElBQUk7S0FFSixJQUFJLFNBQVMsVUFFWCxhQUFhLE1BQU0sSUFBSSxPQUFPLFNBQVMsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsVUFBVSxZQUFZO1VBQzFFO01BRUwsTUFBTSxnQkFBZ0IsVUFBVSxRQUFRLFFBQVEsQ0FBQyxJQUFJLEVBQUU7TUFFdkQsSUFBSSxjQUFjLFNBQVMsS0FBSyxNQUFNLGNBQWMsU0FBUyxHQUUzRCxLQUFLLE1BQU0sZUFBZSxNQUFNLGVBQWU7T0FDN0MsTUFBTSxVQUFVLFlBQVksUUFBUSxLQUFLLE1BQU0sRUFBRSxJQUFJO09BR3JELE1BQU0sYUFBMEIsQ0FBQztPQUNqQyxLQUFLLE1BQU0sT0FBTyxlQUFlO1FBQy9CLE1BQU0sU0FBUyxRQUFRLEtBQUssUUFBUSxJQUFJLElBQUk7UUFFNUMsSUFBSSxDQUFDLE9BQU8sTUFBTSxNQUFNLE1BQU0sUUFBUSxNQUFNLE1BQVMsR0FDbkQsV0FBVyxLQUFLLE1BQU07T0FFMUI7T0FFQSxJQUFJLFdBQVcsV0FBVyxHQUFHO09BSTdCLE1BQU0sZUFBZ0IsTUFBTSxJQUFJLFNBQVMsQ0FBQyxDQUV2QyxRQUFRLFNBQVMsVUFBMkIsQ0FBQyxDQUM3QyxPQUFPLE1BQU0sR0FBRyxPQUFPO09BRzFCLE1BQU0sOEJBQWMsSUFBSSxJQUE2QjtPQUNyRCxLQUFLLE1BQU0sWUFBWSxjQUFjO1FBQ25DLE1BQU0sTUFBTSxRQUNULEtBQUssUUFBUSxPQUFPLFNBQVMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUN6QyxLQUFLLGlCQUFpQjtRQUN6QixNQUFNLEtBQUssU0FBUztRQUNwQixJQUFJLGNBQWMsRUFBRSxLQUFLLGNBQWMsRUFBRSxHQUN2QyxZQUFZLElBQUksS0FBSyxFQUFFO09BRTNCO09BR0EsS0FBSyxNQUFNLE9BQU8sZUFBZTtRQUMvQixJQUFJLElBQUksSUFBSTtRQUVaLE1BQU0sTUFBTSxRQUFRLEtBQUssUUFBUSxPQUFPLElBQUksUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssaUJBQWlCO1FBQy9FLE1BQU0sYUFBYSxZQUFZLElBQUksR0FBRztRQUV0QyxJQUFJLFlBQ0YsSUFBSSxLQUFLO09BRWI7TUFDRjtNQUlGLE1BQU0sa0JBQWtCLENBQUMsSUFBSTtNQUc3QixJQUFJLGdCQURlLE9BQU8sS0FBSyxVQUFVLEVBQ3JCLENBQUEsQ0FBVyxRQUFRLE1BQU0sTUFBTSxJQUFJO01BR3ZELElBQUksU0FBUyxTQUFTLFFBQVE7T0FFNUIsTUFBTSxpQkFBaUIsUUFBUTtPQUUvQixNQUFNLHFCQUFxQixjQUFjLFFBQVEsTUFBTSxlQUFlLFNBQVMsQ0FBQyxDQUFDO09BQ2pGLGdCQUFnQixjQUFjLFFBQVEsTUFBTSxDQUFDLGVBQWUsU0FBUyxDQUFDLENBQUM7T0FHdkUsSUFBSSxtQkFBbUIsUUFDckIsTUFBTSxFQUFFLG1CQUFtQjtRQUN6QjtRQUNBO1FBQ0E7T0FDRixDQUFDO01BRUw7TUFHQSxNQUFNLGVBQWUsY0FBYyxTQUFTLGdCQUFnQjtNQUU1RCxhQUFhLE1BQU0sSUFDaEIsT0FBTyxTQUFTLENBQUMsQ0FDakIsS0FBSyxTQUFTLENBQUMsQ0FDZixXQUFXLGVBQWUsQ0FBQyxDQUMzQixNQUFNLFlBQVksQ0FBQyxDQUNuQixVQUFVLFlBQVk7S0FDM0I7S0FFQSxJQUFJLGNBQWMsV0FBVyxXQUFXLFFBQ3RDLE1BQU0sSUFBSSxNQUFNLEdBQUcsVUFBVSx5QkFBeUI7S0FHeEQsS0FBSyxJQUFJLElBQUksR0FBRyxJQUFJLFdBQVcsUUFBUSxLQUFLO01BQzFDLFFBQVEsSUFBSSxjQUFjLElBQUksV0FBVyxFQUFFO01BQzNDLE9BQU8sS0FBSyxXQUFXLEVBQUUsQ0FBQyxFQUFFO0tBQzlCO0lBQ0Y7R0FDRjtHQUdBLEtBQUssTUFBTSxvQkFBb0IsV0FDN0IsaUJBQWlCLE9BQU8saUJBQWlCLEtBQUssS0FBSyxRQUFRO0lBQ3pELEtBQUssTUFBTSxPQUFPLE9BQU8sS0FBSyxHQUFHLEdBQUc7S0FDbEMsTUFBTSxPQUFPLElBQUk7S0FDakIsSUFBSSxXQUFXLElBQUksS0FBSyxLQUFLLE9BQU8sV0FBVztNQUM3QyxNQUFNLFNBQVMsUUFBUSxJQUFJLEtBQUssSUFBSTtNQUNwQyxJQUFJLENBQUMsUUFBUTtPQUNYLFFBQVEsTUFBTSxJQUFJO09BQ2xCLE1BQU0sSUFBSSxNQUFNLGdCQUFnQixLQUFLLEtBQUssU0FBUyxXQUFXO01BQ2hFO01BRUEsTUFBTSxnQkFBZ0IsT0FBTyxLQUFLLE9BQU87TUFDekMsSUFBSSxPQUFPO01BRVgsTUFBTSxFQUFFLHdCQUF3QjtPQUM5QjtPQUNBLE9BQU87T0FDUCxNQUFNO1FBQUUsSUFBSSxLQUFLO1FBQUksTUFBTSxLQUFLO1FBQU0sS0FBSyxLQUFLLE9BQU87T0FBSztPQUM1RCxJQUFJO01BQ04sQ0FBQztLQUNIO0lBQ0Y7SUFDQSxPQUFPO0dBQ1QsQ0FBQztHQUdILElBQUksU0FBUyxjQUFjO0lBQ3pCLE1BQU0sZUFBZSxRQUFRO0lBQzdCLE1BQU0sWUFBWSxRQUFRLFlBQVk7SUFHdEMsTUFBTSxlQUFlLFVBQVUsS0FBSyxVQUFVO0tBRTVDLE9BQU87TUFBRSxRQUFRO01BQU8sUUFBUSxDQURkLEdBQUcsSUFBSSxJQUFJLE1BQU0sS0FBSyxLQUFLLFFBQVEsSUFBSSxNQUFNLENBQUMsQ0FBQyxPQUFPLE9BQU8sQ0FBQyxDQUNoRDtLQUFTO0lBQzNDLENBQUM7SUFHRCxJQUFJLGFBQWEsT0FBTyxPQUFPLEdBQUcsT0FBTyxTQUFTLENBQUMsR0FBRztLQUNwRCxJQUFJLGNBQWMsSUFBSSxTQUFTO0tBRy9CLEtBQUssTUFBTSxFQUFFLFFBQVEsWUFBWSxjQUUvQixjQUFjLFlBQVksUUFBUSxRQUFRLE1BQXNCO0tBSWxFLGNBQWMsWUFBWSxXQUFXLE1BQU0sTUFBTTtLQUVqRCxNQUFNLGVBQWUsTUFBTSxZQUFZLE9BQU87S0FFOUMsTUFBTSxFQUFFLHlCQUF5QjtNQUMvQjtNQUNBLGNBQWM7TUFDZDtLQUNGLENBQUM7SUFDSDtHQUNGO0dBR0EsTUFBTSxPQUFPLENBQUM7R0FDZCxNQUFNLFdBQVcsTUFBTTtHQUN2QixNQUFNLFdBQVcsTUFBTTtHQUV2QixNQUFNLEVBQUUsb0JBQW9CO0lBQzFCO0lBQ0E7SUFDQSxVQUFVLE9BQU87SUFDakIsYUFBYTtHQUNmLENBQUM7R0FHRCxPQUFPO0VBQ1Q7RUFFQSxNQUFNLFlBQ0osS0FDQSxXQUNBLFNBSWU7R0FDZixVQUFVO0lBQ1IsR0FBRztJQUNILFdBQVcsU0FBUyxhQUFhO0lBQ2pDLE9BQU8sU0FBUyxTQUFTO0dBQzNCO0dBRUEsSUFBSSxDQUFDLEtBQUssU0FBUyxTQUFTLEdBQzFCO0dBRUYsTUFBTSxRQUFRLEtBQUssT0FBTyxJQUFJLFNBQVM7R0FDdkMsSUFBSSxDQUFDLE9BQ0gsTUFBTSxJQUFJLE1BQU0sZUFBZSxVQUFVLGlCQUFpQjtRQUNyRCxJQUFJLE1BQU0sS0FBSyxXQUFXLEdBQy9CO0dBR0YsTUFBTSxlQUFlLE1BQU0sUUFBUSxRQUFRLEtBQUssSUFBSSxRQUFRLFFBQVEsQ0FBQyxRQUFRLFNBQVMsSUFBSTtHQUMxRixNQUFNLE9BQU8sTUFBTSxLQUFLLEtBQUssU0FBUztJQUNwQyxNQUFNLEVBQUUsTUFBTSxHQUFHLEdBQUcsUUFBUTtJQUU1QixPQUFPO0dBQ1QsQ0FBQztHQUVELE1BQU0sWUFBWSxLQUFLLFdBQVcsY0FBYyxNQUFNLFFBQVEsU0FBUztHQUV2RSxNQUFNLEVBQUUseUJBQXlCO0lBQy9CO0lBQ0EsVUFBVSxLQUFLO0lBQ2Y7R0FDRixDQUFDO0dBR0QsTUFBTSxPQUFPLENBQUM7R0FDZCxNQUFNLFdBQVcsTUFBTTtHQUN2QixNQUFNLFdBQVcsTUFBTTtFQUN6Qjs7Ozs7O0VBV0Esa0JBQTBCLE1BQW1CLFdBQW1CO0dBSzlELElBQUksQ0FIZSxLQUNoQixTQUFTLFFBQVEsT0FBTyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQ3BDLE1BQU0sVUFBVSxXQUFXLEtBQUssS0FBSyxNQUFNLE9BQU8sU0FDaEQsR0FBWSxPQUFPO0lBQUUsUUFBUSxDQUFDLElBQUk7SUFBRyxhQUFhO0dBQU07R0FHN0QsTUFBTSw0QkFBWSxJQUFJLElBQXVCO0dBQzdDLEtBQUssTUFBTSxPQUFPLE1BQU07SUFFdEIsTUFBTSxPQUFPLElBQUk7SUFDakIsSUFBSSxDQUFDLE1BQU0sTUFBTSxJQUFJLE1BQU0seUNBQXlDLFdBQVc7SUFDL0UsVUFBVSxJQUFJLE1BQU0sR0FBRztHQUN6QjtHQUVBLElBQUksVUFBVSxNQUFNLEtBQUssVUFBVSxPQUFPLENBQUM7R0FDM0MsTUFBTSxTQUF3QixDQUFDO0dBQy9CLE1BQU0sMkJBQVcsSUFBSSxJQUFZO0dBR2pDLE9BQU8sUUFBUSxTQUFTLEdBQUc7SUFDekIsTUFBTSxlQUE0QixDQUFDO0lBQ25DLE1BQU0sY0FBMkIsQ0FBQztJQUVsQyxLQUFLLE1BQU0sT0FBTyxTQWVoQixJQVppQixPQUFPLE9BQU8sR0FBRyxDQUFDLENBQUMsUUFDakMsVUFBVSxXQUFXLEtBQUssS0FBSyxNQUFNLE9BQU8sU0FJN0IsQ0FBQSxDQUFTLE9BQU8sUUFBUTtLQUN4QyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksSUFBSSxHQUN6QixNQUFNLElBQUksTUFBTSxnQkFBZ0IsSUFBSSxLQUFLLFNBQVMsV0FBVztLQUUvRCxPQUFPLFNBQVMsSUFBSSxJQUFJLElBQUk7SUFDOUIsQ0FFSSxHQUNGLGFBQWEsS0FBSyxHQUFHO1NBRXJCLFlBQVksS0FBSyxHQUFHO0lBS3hCLElBQUksYUFBYSxXQUFXLEdBQUcsT0FBTztLQUFFLFFBQVEsQ0FBQztLQUFHLGFBQWE7SUFBSztJQUd0RSxPQUFPLEtBQUssWUFBWTtJQUN4QixLQUFLLE1BQU0sT0FBTyxjQUVoQixTQUFTLElBQUksSUFBSSxJQUFjO0lBR2pDLFVBQVU7R0FDWjtHQUVBLE9BQU87SUFBRTtJQUFRLGFBQWE7R0FBTTtFQUN0QztDQUNGIn0=
|
|
349
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBzZXJ0LWJ1aWxkZXIuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhdGFiYXNlL3Vwc2VydC1idWlsZGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJhbmRvbVVVSUQgfSBmcm9tIFwiY3J5cHRvXCI7XG5cbmltcG9ydCB7IGdldExvZ2dlciB9IGZyb20gXCJAbG9ndGFwZS9sb2d0YXBlXCI7XG5pbXBvcnQgeyB0eXBlIEtuZXggfSBmcm9tIFwia25leFwiO1xuaW1wb3J0IHsgY2x1c3RlciwgaXNBcnJheSwgdW5pcXVlIH0gZnJvbSBcInJhZGFzaGlcIjtcblxuaW1wb3J0IHsgRW50aXR5TWFuYWdlciB9IGZyb20gXCIuLi9lbnRpdHkvZW50aXR5LW1hbmFnZXJcIjtcbmltcG9ydCB7IE5haXRlIH0gZnJvbSBcIi4uL25haXRlL25haXRlXCI7XG5pbXBvcnQge1xuICB0eXBlIERhdGFiYXNlRm9yZWlnbktleXMsXG4gIHR5cGUgRGF0YWJhc2VTY2hlbWFFeHRlbmQsXG4gIHR5cGUgRW50aXR5SW5kZXgsXG59IGZyb20gXCIuLi90eXBlcy90eXBlc1wiO1xuaW1wb3J0IHsgYXNBcnJheSB9IGZyb20gXCIuLi91dGlscy9tb2RlbFwiO1xuaW1wb3J0IHsgaXNOdW1iZXJWYWx1ZSwgaXNPYmplY3RWYWx1ZSwgaXNTdHJpbmdWYWx1ZSB9IGZyb20gXCIuLi91dGlscy9ydW50aW1lLXZhbHVlXCI7XG5pbXBvcnQgeyBhc3NlcnREZWZpbmVkLCBub25OdWxsYWJsZSB9IGZyb20gXCIuLi91dGlscy91dGlsc1wiO1xuaW1wb3J0IHsgYmF0Y2hVcGRhdGUgfSBmcm9tIFwiLi9fYmF0Y2hfdXBkYXRlXCI7XG5pbXBvcnQgeyB0eXBlIFJvd1dpdGhJZCB9IGZyb20gXCIuL19iYXRjaF91cGRhdGVcIjtcbmltcG9ydCB7IHR5cGUgQ29sdW1uS2V5cywgdHlwZSBGb3JlaWduS2V5Q29sdW1ucywgdHlwZSBJZFR5cGUsIHR5cGUgVGFibGVOYW1lIH0gZnJvbSBcIi4vcHVyaS50eXBlc1wiO1xuXG5jb25zdCBsb2dnZXIgPSBnZXRMb2dnZXIoW1wic29uYW11XCIsIFwiaW50ZXJuYWxcIiwgXCJ1cHNlcnQtYnVpbGRlclwiXSk7XG5cbi8qKlxuICogRksg7YOA7J6FIOy2lOuhoOydhCDsnITtlbQgRGF0YWJhc2VGb3JlaWduS2V5cyBleHBvcnRcbiAqIChtb2R1bGUgYXVnbWVudGF0aW9uIOyekOuPmSDroZzrk5wg67O07J6lKVxuICovXG5leHBvcnQgdHlwZSB7IERhdGFiYXNlRm9yZWlnbktleXMgfTtcblxudHlwZSBJbmhlcml0YWJsZUNvbHVtbnM8VFRhYmxlIGV4dGVuZHMgVGFibGVOYW1lPERhdGFiYXNlU2NoZW1hRXh0ZW5kPj4gPVxuICBUVGFibGUgZXh0ZW5kcyBrZXlvZiBEYXRhYmFzZVNjaGVtYUV4dGVuZCA/IENvbHVtbktleXM8RGF0YWJhc2VTY2hlbWFFeHRlbmRbVFRhYmxlXT4gOiBuZXZlcjtcblxuLy8g7LC47KGwIO2VhOuTnCDtg4DsnoVcbmV4cG9ydCB0eXBlIFVCUmVmID0ge1xuICB1dWlkOiBzdHJpbmc7XG4gIG9mOiBzdHJpbmc7XG4gIHVzZT86IHN0cmluZztcbn07XG5cbnR5cGUgVXBzZXJ0VmFsdWUgPVxuICB8IHN0cmluZ1xuICB8IG51bWJlclxuICB8IGJvb2xlYW5cbiAgfCBiaWdpbnRcbiAgfCBEYXRlXG4gIHwgQnVmZmVyXG4gIHwgS25leC5SYXdcbiAgfCBVQlJlZlxuICB8IG51bGxcbiAgfCBVcHNlcnRWYWx1ZVtdXG4gIHwgeyBba2V5OiBzdHJpbmddOiBVcHNlcnRWYWx1ZSB8IHVuZGVmaW5lZCB9O1xudHlwZSBVcHNlcnRSb3cgPSBSZWNvcmQ8c3RyaW5nLCBVcHNlcnRWYWx1ZSB8IHVuZGVmaW5lZD47XG5cbi8vIO2FjOydtOu4lCDrjbDsnbTthLAg7YOA7J6FXG50eXBlIFRhYmxlRGF0YSA9IHtcbiAgcmVmZXJlbmNlczogU2V0PHN0cmluZz47XG4gIHJvd3M6IFVwc2VydFJvd1tdO1xuICB1bmlxdWVJbmRleGVzOiBFbnRpdHlJbmRleFtdO1xuICB1bmlxdWVzTWFwOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuICBqc29uQ29sdW1uczogc3RyaW5nW107XG59O1xuXG4vLyB1cHNlcnQg7Ji17IWYXG5leHBvcnQgdHlwZSBVcHNlcnRPcHRpb25zPFRUYWJsZSBleHRlbmRzIFRhYmxlTmFtZTxEYXRhYmFzZVNjaGVtYUV4dGVuZD4+ID0ge1xuICBjaHVua1NpemU/OiBudW1iZXI7XG4gIGNsZWFuT3JwaGFucz86IEZvcmVpZ25LZXlDb2x1bW5zPFRUYWJsZT4gfCBGb3JlaWduS2V5Q29sdW1uczxUVGFibGU+W107XG4gIGluaGVyaXQ/OiBJbmhlcml0YWJsZUNvbHVtbnM8VFRhYmxlPltdO1xufTtcblxuLy8gaW5zZXJ0T25seSDsmLXshZhcbmV4cG9ydCB0eXBlIEluc2VydE9ubHlPcHRpb25zID0ge1xuICBjaHVua1NpemU/OiBudW1iZXI7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gaXNSZWZGaWVsZDxWYWx1ZT4oZmllbGQ6IFZhbHVlKTogZmllbGQgaXMgVmFsdWUgJiBVQlJlZiB7XG4gIHJldHVybiBpc09iamVjdFZhbHVlKGZpZWxkKSAmJiBcIm9mXCIgaW4gZmllbGQgJiYgXCJ1dWlkXCIgaW4gZmllbGQ7XG59XG5cbmV4cG9ydCBjbGFzcyBVcHNlcnRCdWlsZGVyIHtcbiAgdGFibGVzOiBNYXA8c3RyaW5nLCBUYWJsZURhdGE+O1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnRhYmxlcyA9IG5ldyBNYXAoKTtcbiAgfVxuXG4gIGdldFRhYmxlKHRhYmxlTmFtZTogc3RyaW5nKTogVGFibGVEYXRhIHtcbiAgICBjb25zdCB0YWJsZSA9IHRoaXMudGFibGVzLmdldCh0YWJsZU5hbWUpO1xuICAgIGlmICh0YWJsZSkge1xuICAgICAgcmV0dXJuIHRhYmxlO1xuICAgIH1cblxuICAgIGNvbnN0IHRhYmxlU3BlYyA9ICgoKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gRW50aXR5TWFuYWdlci5nZXRUYWJsZVNwZWModGFibGVOYW1lKTtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICB9KSgpO1xuXG4gICAgY29uc3QgdGFibGVEYXRhID0ge1xuICAgICAgcmVmZXJlbmNlczogbmV3IFNldDxzdHJpbmc+KCksXG4gICAgICByb3dzOiBbXSxcbiAgICAgIHVuaXF1ZUluZGV4ZXM6IHRhYmxlU3BlYz8udW5pcXVlSW5kZXhlcyA/PyBbXSxcbiAgICAgIHVuaXF1ZXNNYXA6IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCksXG4gICAgICBqc29uQ29sdW1uczogdGFibGVTcGVjPy5qc29uQ29sdW1ucyA/PyBbXSxcbiAgICB9O1xuICAgIHRoaXMudGFibGVzLnNldCh0YWJsZU5hbWUsIHRhYmxlRGF0YSk7XG4gICAgcmV0dXJuIHRhYmxlRGF0YTtcbiAgfVxuXG4gIGhhc1RhYmxlKHRhYmxlTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudGFibGVzLmhhcyh0YWJsZU5hbWUpO1xuICB9XG5cbiAgcmVnaXN0ZXI8Um93IGV4dGVuZHMgb2JqZWN0Pih0YWJsZU5hbWU6IHN0cmluZywgcm93OiBSb3cpOiBVQlJlZiB7XG4gICAgY29uc3QgdGFibGUgPSB0aGlzLmdldFRhYmxlKHRhYmxlTmFtZSk7XG5cbiAgICAvLyDtlbTri7kg7YWM7J2067iU7J2YIHVuaXF1ZSDsnbjrjbHsiqTrpbwg7Iic7ZqM7ZWY66mwIO2CpCDsg53shLFcbiAgICBjb25zdCB1bmlxdWVLZXlzID0gdGFibGUudW5pcXVlSW5kZXhlc1xuICAgICAgLm1hcCgodW5xSW5kZXgpID0+IHtcbiAgICAgICAgY29uc3QgdW5pcXVlS2V5QXJyYXkgPSB1bnFJbmRleC5jb2x1bW5zLm1hcCgodW5xQ29sKSA9PiB7XG4gICAgICAgICAgLy8gU0FGRVRZOiDsv7zrpqwg67mM642U7J2YIOygnOuEpOumrSDqs4Tslb3qs7wg7ISg7ZaJIOqygOymneydtCDsnbQg7YOA7J6F7J2EIOuztOyepe2VqeuLiOuLpC5cbiAgICAgICAgICBjb25zdCB2YWwgPSByb3dbdW5xQ29sLm5hbWUgYXMga2V5b2YgdHlwZW9mIHJvd107XG4gICAgICAgICAgaWYgKGlzUmVmRmllbGQodmFsKSkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbC51dWlkO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBTQUZFVFk6IOy/vOumrCDruYzrjZTsnZgg7KCc64Sk66atIOqzhOyVveqzvCDshKDtlokg6rKA7Kad7J20IOydtCDtg4DsnoXsnYQg67O07J6l7ZWp64uI64ukLlxuICAgICAgICAgICAgcmV0dXJuIHJvd1t1bnFDb2wubmFtZSBhcyBrZXlvZiB0eXBlb2Ygcm93XSA/PyByYW5kb21VVUlEKCk7IC8vIG51bGxhYmxl7J24IOqyveyasCB1dWlk66GcIOuenOuNpOqwkiDsgr3snoVcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIOqwkuydtCDrqqjrkZAgbnVsbOyduCDqsr3smrAg7YKkIOyDneyEsSDtjKjsiqRcbiAgICAgICAgaWYgKHVuaXF1ZUtleUFycmF5Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmlxdWVLZXlBcnJheS5qb2luKFwiLS0tZGVsaW1pdGVyLS1cIik7XG4gICAgICB9KVxuICAgICAgLmZpbHRlcihub25OdWxsYWJsZSk7XG5cbiAgICAvLyB1dWlkIOyDneyEsSDroZzsp4FcbiAgICBjb25zdCB7IHV1aWQsIGlzUmV1c2VkIH0gPSAoKCkgPT4ge1xuICAgICAgLy8g7YKk66W8IOyInO2ajO2VmOyXrCDsnbTrr7gg7KG07J6s7ZWY64qUIO2CpOqwgCDsnojripTsp4Ag7ZmV7J24XG4gICAgICBpZiAodW5pcXVlS2V5cy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGZvciAoY29uc3QgdW5pcXVlS2V5IG9mIHVuaXF1ZUtleXMpIHtcbiAgICAgICAgICBpZiAodGFibGUudW5pcXVlc01hcC5oYXModW5pcXVlS2V5KSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgdXVpZDogYXNzZXJ0RGVmaW5lZCh0YWJsZS51bmlxdWVzTWFwLmdldCh1bmlxdWVLZXkpLCBcIlVuaXF1ZSBrZXkgbm90IGZvdW5kXCIpLFxuICAgICAgICAgICAgICBpc1JldXNlZDogdHJ1ZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIOywvuydhCDsiJgg7JeG64qUIOqyveyasCDsg53shLFcbiAgICAgIHJldHVybiB7IHV1aWQ6IHJhbmRvbVVVSUQoKSwgaXNSZXVzZWQ6IGZhbHNlIH07XG4gICAgfSkoKTtcblxuICAgIC8vIOuqqOuToCDsnKDri4jtgaztgqTsl5Ag64yA7ZW0IOycoOuLiO2BrOunteyXkCB1dWlkIOyggOyepVxuICAgIGlmICh1bmlxdWVLZXlzLmxlbmd0aCA+IDApIHtcbiAgICAgIGZvciAoY29uc3QgdW5pcXVlS2V5IG9mIHVuaXF1ZUtleXMpIHtcbiAgICAgICAgdGFibGUudW5pcXVlc01hcC5zZXQodW5pcXVlS2V5LCB1dWlkKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyDsnbQg7YWM7J2067iU7JeQIOyCrOyaqeuQnCBSZWZGaWVsZOulvCDsiJztmoztlZjsl6wsIO2YhOyerCDthYzsnbTruJQg7KCV67O07JeQIOyWtOuWpCDtlYTrk5zrpbwg7LC47KGw7ZWY64qU7KeAIOy2lOqwgFxuICAgIC8vIOydtCDsoJXrs7Trpbwg64KY7KSR7JeQIOy5mO2ZmO2VoCDrlYwg7IKs7JqpXG4gICAgY29uc3Qgbm9ybWFsaXplZFJvdyA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgIE9iamVjdC5lbnRyaWVzKHJvdykubWFwKChbcm93S2V5LCByb3dWYWx1ZV0pID0+IHtcbiAgICAgICAgaWYgKGlzUmVmRmllbGQocm93VmFsdWUpKSB7XG4gICAgICAgICAgcm93VmFsdWUudXNlID8/PSBcImlkXCI7XG4gICAgICAgICAgdGFibGUucmVmZXJlbmNlcy5hZGQoYCR7cm93VmFsdWUub2Z9LiR7cm93VmFsdWUudXNlfWApO1xuICAgICAgICAgIHJldHVybiBbcm93S2V5LCByb3dWYWx1ZV0gYXMgY29uc3Q7XG4gICAgICAgIH0gZWxzZSBpZiAodGFibGUuanNvbkNvbHVtbnMuaW5jbHVkZXMocm93S2V5KSAmJiByb3dWYWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICAgIC8vIEpTT04g7Lus65+87J24IOqyveyasCBKU09OLnN0cmluZ2lmeSDsspjrpqwgKEtuZXjripQgSlNPTiDtg4DsnoXsnYQg7KeA7JuQ7ZWY7KeAIOyViuydjClcbiAgICAgICAgICByZXR1cm4gW3Jvd0tleSwgSlNPTi5zdHJpbmdpZnkocm93VmFsdWUpXSBhcyBjb25zdDtcbiAgICAgICAgfSBlbHNlIGlmIChpc0FycmF5KHJvd1ZhbHVlKSkge1xuICAgICAgICAgIC8vIOuwsOyXtOydgCDqt7jrjIDroZwg7KCA7J6lXG4gICAgICAgICAgcmV0dXJuIFtyb3dLZXksIHJvd1ZhbHVlXSBhcyBjb25zdDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gW3Jvd0tleSwgcm93VmFsdWVdIGFzIGNvbnN0O1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgdGFibGUucm93cy5wdXNoKHtcbiAgICAgIHV1aWQsXG4gICAgICAuLi5ub3JtYWxpemVkUm93LFxuICAgIH0pO1xuXG4gICAgY29uc3QgcmVzdWx0OiBVQlJlZiA9IHtcbiAgICAgIG9mOiB0YWJsZU5hbWUsXG4gICAgICAvLyBTQUZFVFk6IOy/vOumrCDruYzrjZTsnZgg7KCc64Sk66atIOqzhOyVveqzvCDshKDtlokg6rKA7Kad7J20IOydtCDtg4DsnoXsnYQg67O07J6l7ZWp64uI64ukLlxuICAgICAgdXVpZDogaXNTdHJpbmdWYWx1ZShub3JtYWxpemVkUm93LnV1aWQpID8gbm9ybWFsaXplZFJvdy51dWlkIDogdXVpZCxcbiAgICB9O1xuXG4gICAgTmFpdGUudChcInB1cmk6dWItcmVnaXN0ZXJcIiwge1xuICAgICAgdGFibGVOYW1lLFxuICAgICAgdXVpZDogcmVzdWx0LnV1aWQsXG4gICAgICBpc1V1aWRSZXVzZWQ6IGlzUmV1c2VkLFxuICAgICAgcm93LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGFzeW5jIHVwc2VydDxUVGFibGUgZXh0ZW5kcyBUYWJsZU5hbWU8RGF0YWJhc2VTY2hlbWFFeHRlbmQ+PihcbiAgICB3ZGI6IEtuZXgsXG4gICAgdGFibGVOYW1lOiBUVGFibGUsXG4gICAgb3B0aW9ucz86IFVwc2VydE9wdGlvbnM8VFRhYmxlPixcbiAgKTogUHJvbWlzZTxJZFR5cGU8RGF0YWJhc2VTY2hlbWFFeHRlbmQsIFRUYWJsZT5bXT4ge1xuICAgIHJldHVybiB0aGlzLnVwc2VydE9ySW5zZXJ0KHdkYiwgdGFibGVOYW1lLCBcInVwc2VydFwiLCBvcHRpb25zKTtcbiAgfVxuXG4gIGFzeW5jIGluc2VydE9ubHk8VFRhYmxlIGV4dGVuZHMgVGFibGVOYW1lPERhdGFiYXNlU2NoZW1hRXh0ZW5kPj4oXG4gICAgd2RiOiBLbmV4LFxuICAgIHRhYmxlTmFtZTogVFRhYmxlLFxuICAgIG9wdGlvbnM/OiBJbnNlcnRPbmx5T3B0aW9ucyxcbiAgKTogUHJvbWlzZTxJZFR5cGU8RGF0YWJhc2VTY2hlbWFFeHRlbmQsIFRUYWJsZT5bXT4ge1xuICAgIHJldHVybiB0aGlzLnVwc2VydE9ySW5zZXJ0KHdkYiwgdGFibGVOYW1lLCBcImluc2VydFwiLCBvcHRpb25zKTtcbiAgfVxuXG4gIGFzeW5jIHVwc2VydE9ySW5zZXJ0PFRUYWJsZSBleHRlbmRzIFRhYmxlTmFtZTxEYXRhYmFzZVNjaGVtYUV4dGVuZD4+KFxuICAgIHdkYjogS25leCxcbiAgICB0YWJsZU5hbWU6IFRUYWJsZSxcbiAgICBtb2RlOiBcInVwc2VydFwiIHwgXCJpbnNlcnRcIixcbiAgICBvcHRpb25zPzogVXBzZXJ0T3B0aW9uczxUVGFibGU+LFxuICApOiBQcm9taXNlPElkVHlwZTxEYXRhYmFzZVNjaGVtYUV4dGVuZCwgVFRhYmxlPltdPiB7XG4gICAgaWYgKCF0aGlzLmhhc1RhYmxlKHRhYmxlTmFtZSkpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCB0YWJsZSA9IHRoaXMudGFibGVzLmdldCh0YWJsZU5hbWUpO1xuICAgIGlmICh0YWJsZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYOyhtOyerO2VmOyngCDslYrripQg7YWM7J2067iUICR7dGFibGVOYW1lfeyXkCB1cHNlcnQg7JqU7LKtYCk7XG4gICAgfSBlbHNlIGlmICh0YWJsZS5yb3dzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAke3RhYmxlTmFtZX3sl5AgdXBzZXJ0IO2VoCDrjbDsnbTthLDqsIAg7JeG7Iq164uI64ukLmApO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHRhYmxlLnJvd3Muc29tZSgocm93KSA9PlxuICAgICAgICBPYmplY3QuZW50cmllcyhyb3cpLnNvbWUoKFssIHZhbHVlXSkgPT4gaXNSZWZGaWVsZCh2YWx1ZSkgJiYgdmFsdWUub2YgIT09IHRhYmxlTmFtZSksXG4gICAgICApXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7dGFibGVOYW1lfSDtlbTqsrDrkJjsp4Ag7JWK7J2AIOywuOyhsOqwgCDsnojsirXri4jri6QuYCk7XG4gICAgfVxuXG4gICAgLy8g7KCE7LK0IO2FjOydtOu4lCDsiJztmoztlZjsl6wg7ZiE7J6sIO2FjOydtOu4lCDssLjsobDtlZjripQg66qo65OgIO2FjOydtOu4lCDstpTstpxcbiAgICBjb25zdCB7IHJlZmVyZW5jZXMsIHJlZlRhYmxlcyB9ID0gQXJyYXkuZnJvbSh0aGlzLnRhYmxlcykucmVkdWNlKFxuICAgICAgKHIsIFssIGNhbmRpZGF0ZVRhYmxlXSkgPT4ge1xuICAgICAgICBjb25zdCByZWZlcmVuY2UgPSBBcnJheS5mcm9tKGNhbmRpZGF0ZVRhYmxlLnJlZmVyZW5jZXMudmFsdWVzKCkpLmZpbmQoKHJlZikgPT5cbiAgICAgICAgICByZWYuaW5jbHVkZXMoYCR7dGFibGVOYW1lfS5gKSxcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKHJlZmVyZW5jZSkge1xuICAgICAgICAgIHIucmVmZXJlbmNlcy5wdXNoKHJlZmVyZW5jZSk7XG4gICAgICAgICAgci5yZWZUYWJsZXMucHVzaChjYW5kaWRhdGVUYWJsZSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcjtcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIFNBRkVUWTog7L+866asIOu5jOuNlOydmCDsoJzrhKTrpq0g6rOE7JW96rO8IOyEoO2WiSDqsoDspp3snbQg7J20IO2DgOyeheydhCDrs7TsnqXtlanri4jri6QuXG4gICAgICAgIHJlZmVyZW5jZXM6IFtdIGFzIHN0cmluZ1tdLFxuICAgICAgICAvLyBTQUZFVFk6IOy/vOumrCDruYzrjZTsnZgg7KCc64Sk66atIOqzhOyVveqzvCDshKDtlokg6rKA7Kad7J20IOydtCDtg4DsnoXsnYQg67O07J6l7ZWp64uI64ukLlxuICAgICAgICByZWZUYWJsZXM6IFtdIGFzIFRhYmxlRGF0YVtdLFxuICAgICAgfSxcbiAgICApO1xuICAgIGNvbnN0IGV4dHJhY3RGaWVsZHMgPSB1bmlxdWUocmVmZXJlbmNlcylcbiAgICAgIC5tYXAoKHJlZmVyZW5jZSkgPT4gcmVmZXJlbmNlLnNwbGl0KFwiLlwiKVsxXSlcbiAgICAgIC5maWx0ZXIoKGZpZWxkKTogZmllbGQgaXMgc3RyaW5nID0+IGZpZWxkICE9PSB1bmRlZmluZWQpO1xuXG4gICAgLy8g7J2Y7KG07ISxIOyInOyEnOyXkCDrlLDrnbwg66CI67Ko67OEIOq3uOujue2ZlCAo7J6Q6riwIOywuOyhsOqwgCDsl4bsnLzrqbQgTGV2ZWwgMCDtlZjrgpgpXG4gICAgY29uc3QgeyBsZXZlbHMsIGhhc0NpcmN1bGFyIH0gPSB0aGlzLmJ1aWxkSW5zZXJ0TGV2ZWxzKHRhYmxlLnJvd3MsIHRhYmxlTmFtZSk7XG5cbiAgICBpZiAoaGFzQ2lyY3VsYXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJHt0YWJsZU5hbWV97JeQIOyInO2ZmCDsnpDquLAg7LC47KGw6rCAIOyeiOyKteuLiOuLpC5gKTtcbiAgICB9XG5cbiAgICBjb25zdCB1dWlkTWFwID0gbmV3IE1hcDxzdHJpbmcsIFVwc2VydFJvdyAmIHsgaWQ6IG51bWJlciB8IHN0cmluZyB9PigpO1xuICAgIGNvbnN0IGFsbElkczogKG51bWJlciB8IHN0cmluZylbXSA9IFtdO1xuXG4gICAgLy8g66CI67Ko67OE66GcIOyInOywqCDsspjrpqxcbiAgICBmb3IgKGxldCBsZXZlbElkeCA9IDA7IGxldmVsSWR4IDwgbGV2ZWxzLmxlbmd0aDsgbGV2ZWxJZHgrKykge1xuICAgICAgY29uc3QgbGV2ZWxSb3dzID0gbGV2ZWxzW2xldmVsSWR4XTtcbiAgICAgIGxvZ2dlci5kZWJ1ZyhcIlByb2Nlc3NpbmcgUXVlcnkgTGV2ZWw6IHtjdXJyZW50fSAvIHt0b3RhbH1cIiwge1xuICAgICAgICBjdXJyZW50OiBsZXZlbElkeCArIDEsXG4gICAgICAgIHRvdGFsOiBsZXZlbHMubGVuZ3RoLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIOydtOyghCDroIjrsqjsl5DshJwg7Ja77J2AIElE66GcIOyekOq4sCDssLjsobAg7ZW06rKwXG4gICAgICBjb25zdCByZXNvbHZlZFJvd3MgPSBsZXZlbFJvd3MubWFwKChyb3cpID0+IHtcbiAgICAgICAgY29uc3QgcmVzb2x2ZWQgPSB7IC4uLnJvdyB9O1xuICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhyb3cpKSB7XG4gICAgICAgICAgaWYgKGlzUmVmRmllbGQodmFsdWUpICYmIHZhbHVlLm9mID09PSB0YWJsZU5hbWUpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IHV1aWRNYXAuZ2V0KHZhbHVlLnV1aWQpO1xuXG4gICAgICAgICAgICBpZiAoIXBhcmVudCkgdGhyb3cgbmV3IEVycm9yKGDsobTsnqztlZjsp4Ag7JWK64qUIHV1aWQgJHt2YWx1ZS51dWlkfSAtLSBpbiAke3RhYmxlTmFtZX1gKTtcblxuICAgICAgICAgICAgLy8gU0FGRVRZOiDsv7zrpqwg67mM642U7J2YIOygnOuEpOumrSDqs4Tslb3qs7wg7ISg7ZaJIOqygOymneydtCDsnbQg7YOA7J6F7J2EIOuztOyepe2VqeuLiOuLpC5cbiAgICAgICAgICAgIHJlc29sdmVkW2tleV0gPSAocGFyZW50IGFzIFVwc2VydFJvdylbdmFsdWUudXNlID8/IFwiaWRcIl07XG5cbiAgICAgICAgICAgIE5haXRlLnQoXCJwdXJpOnViLXJlZi1yZXNvbHZlZFwiLCB7XG4gICAgICAgICAgICAgIHRhYmxlTmFtZSxcbiAgICAgICAgICAgICAgZmllbGQ6IGtleSxcbiAgICAgICAgICAgICAgZnJvbTogeyBvZjogdmFsdWUub2YsIHV1aWQ6IHZhbHVlLnV1aWQsIHVzZTogdmFsdWUudXNlID8/IFwiaWRcIiB9LFxuICAgICAgICAgICAgICB0bzogcmVzb2x2ZWRba2V5XSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzb2x2ZWQ7XG4gICAgICB9KTtcblxuICAgICAgLy8g7ZiE7J6sIOugiOuyqCB1cHNlcnRcbiAgICAgIGNvbnN0IGNodW5rU2l6ZSA9IG9wdGlvbnM/LmNodW5rU2l6ZTtcbiAgICAgIGNvbnN0IGxldmVsQ2h1bmtzID0gY2h1bmtTaXplID8gY2x1c3RlcihyZXNvbHZlZFJvd3MsIGNodW5rU2l6ZSkgOiBbcmVzb2x2ZWRSb3dzXTtcbiAgICAgIGNvbnN0IHNlbGVjdEZpZWxkcyA9IHVuaXF1ZShbXCJpZFwiLCAuLi5leHRyYWN0RmllbGRzXSk7XG5cbiAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBsZXZlbENodW5rcy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgY29uc3QgZGF0YUNodW5rID0gbGV2ZWxDaHVua3NbaW5kZXhdO1xuICAgICAgICBpZiAoZGF0YUNodW5rLmxlbmd0aCA9PT0gMCkgY29udGludWU7XG4gICAgICAgIGxvZ2dlci5kZWJ1ZyhcIlByb2Nlc3NpbmcgQ2h1bms6IHtjdXJyZW50fSAvIHt0b3RhbH1cIiwge1xuICAgICAgICAgIGN1cnJlbnQ6IGluZGV4ICsgMSxcbiAgICAgICAgICB0b3RhbDogbGV2ZWxDaHVua3MubGVuZ3RoLFxuICAgICAgICB9KTtcblxuICAgICAgICAvLyB1dWlk66W8IOuzhOuPhOuhnCDrs7TqtIDtlZjqs6AsIERC7JeQIOyggOyepe2VoCDrjbDsnbTthLDsl5DshJwg7KCc6rGwXG4gICAgICAgIC8vIFNBRkVUWTog7L+866asIOu5jOuNlOydmCDsoJzrhKTrpq0g6rOE7JW96rO8IOyEoO2WiSDqsoDspp3snbQg7J20IO2DgOyeheydhCDrs7TsnqXtlanri4jri6QuXG4gICAgICAgIGNvbnN0IG9yaWdpbmFsVXVpZHMgPSBkYXRhQ2h1bmsubWFwKChyKSA9PiByLnV1aWQgYXMgc3RyaW5nKTtcbiAgICAgICAgY29uc3QgZGF0YUZvckRiID0gZGF0YUNodW5rLm1hcCgocm93KSA9PiB7XG4gICAgICAgICAgY29uc3QgcmVzdCA9IHsgLi4ucm93IH07XG4gICAgICAgICAgZGVsZXRlIHJlc3QudXVpZDtcbiAgICAgICAgICByZXR1cm4gcmVzdDtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgbGV0IHJlc3VsdFJvd3M6IChVcHNlcnRSb3cgJiB7IGlkOiBudW1iZXIgfCBzdHJpbmcgfSlbXTtcblxuICAgICAgICBpZiAobW9kZSA9PT0gXCJpbnNlcnRcIikge1xuICAgICAgICAgIC8vIElOU0VSVCDrqqjrk5wgLSBSRVRVUk5JTkcg7IKs7JqpXG4gICAgICAgICAgcmVzdWx0Um93cyA9IGF3YWl0IHdkYi5pbnNlcnQoZGF0YUZvckRiKS5pbnRvKHRhYmxlTmFtZSkucmV0dXJuaW5nKHNlbGVjdEZpZWxkcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gVVBTRVJUIOuqqOuTnCAtIGlkIOyXhuuKlCByb3frk6TsnZggaWTrpbwg7IKs7KCEIOyhsO2ajOuhnCDssYTsmrDquLBcbiAgICAgICAgICBjb25zdCByb3dzV2l0aG91dElkID0gZGF0YUZvckRiLmZpbHRlcigocm93KSA9PiAhcm93LmlkKTtcblxuICAgICAgICAgIGlmIChyb3dzV2l0aG91dElkLmxlbmd0aCA+IDAgJiYgdGFibGUudW5pcXVlSW5kZXhlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAvLyDrqqjrk6AgdW5pcXVlSW5kZXhlc+uhnCDquLDsobQg66CI7L2U65OcIOyhsO2ajFxuICAgICAgICAgICAgZm9yIChjb25zdCB1bmlxdWVJbmRleCBvZiB0YWJsZS51bmlxdWVJbmRleGVzKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGNvbHVtbnMgPSB1bmlxdWVJbmRleC5jb2x1bW5zLm1hcCgoYykgPT4gYy5uYW1lKTtcblxuICAgICAgICAgICAgICAvLyDsobDtmoztlaAg7KGw6rG065OkIOy2lOy2nCAo6rCBIHJvd+ydmCB1bmlxdWUg7Lus65+8IOqwkuuTpClcbiAgICAgICAgICAgICAgY29uc3QgY29uZGl0aW9uczogdW5rbm93bltdW10gPSBbXTtcbiAgICAgICAgICAgICAgZm9yIChjb25zdCByb3cgb2Ygcm93c1dpdGhvdXRJZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlcyA9IGNvbHVtbnMubWFwKChjb2wpID0+IHJvd1tjb2xdKTtcbiAgICAgICAgICAgICAgICAvLyBudWxs7J20IO2PrO2VqOuQnCDsobDqsbTsnYAg7KCc7Jm4IChQb3N0Z3JlU1FMIFVOSVFVReuKlCBOVUxMIOustOyLnClcbiAgICAgICAgICAgICAgICBpZiAoIXZhbHVlcy5zb21lKCh2KSA9PiB2ID09PSBudWxsIHx8IHYgPT09IHVuZGVmaW5lZCkpIHtcbiAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbnMucHVzaCh2YWx1ZXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmIChjb25kaXRpb25zLmxlbmd0aCA9PT0gMCkgY29udGludWU7XG5cbiAgICAgICAgICAgICAgLy8g67Cw7LmYIFNFTEVDVFxuICAgICAgICAgICAgICAvLyBTQUZFVFk6IOy/vOumrCDruYzrjZTsnZgg7KCc64Sk66atIOqzhOyVveqzvCDshKDtlokg6rKA7Kad7J20IOydtCDtg4DsnoXsnYQg67O07J6l7ZWp64uI64ukLlxuICAgICAgICAgICAgICBjb25zdCBleGlzdGluZ1Jvd3MgPSAoYXdhaXQgd2RiKHRhYmxlTmFtZSlcbiAgICAgICAgICAgICAgICAvLyBTQUZFVFk6IOy/vOumrCDruYzrjZTsnZgg7KCc64Sk66atIOqzhOyVveqzvCDshKDtlokg6rKA7Kad7J20IOydtCDtg4DsnoXsnYQg67O07J6l7ZWp64uI64ukLlxuICAgICAgICAgICAgICAgIC53aGVyZUluKGNvbHVtbnMsIGNvbmRpdGlvbnMgYXMgVXBzZXJ0Um93W11bXSlcbiAgICAgICAgICAgICAgICAuc2VsZWN0KFwiaWRcIiwgLi4uY29sdW1ucykpIGFzIFVwc2VydFJvd1tdO1xuXG4gICAgICAgICAgICAgIC8vIE1hcCDsg53shLE6IHVuaXF1ZSDsu6zrn7wg7KGw7ZWpIOKGkiBpZFxuICAgICAgICAgICAgICBjb25zdCBleGlzdGluZ01hcCA9IG5ldyBNYXA8c3RyaW5nLCBudW1iZXIgfCBzdHJpbmc+KCk7XG4gICAgICAgICAgICAgIGZvciAoY29uc3QgZXhpc3Rpbmcgb2YgZXhpc3RpbmdSb3dzKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gY29sdW1uc1xuICAgICAgICAgICAgICAgICAgLm1hcCgoY29sKSA9PiBTdHJpbmcoZXhpc3RpbmdbY29sXSA/PyBcIlwiKSlcbiAgICAgICAgICAgICAgICAgIC5qb2luKFwiLS0tZGVsaW1pdGVyLS0tXCIpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGlkID0gZXhpc3RpbmcuaWQ7XG4gICAgICAgICAgICAgICAgaWYgKGlzTnVtYmVyVmFsdWUoaWQpIHx8IGlzU3RyaW5nVmFsdWUoaWQpKSB7XG4gICAgICAgICAgICAgICAgICBleGlzdGluZ01hcC5zZXQoa2V5LCBpZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgLy8gaWQg7JeG64qUIHJvd+uTpOyXkCDrp6Tsua3rkJjripQgaWQg7LGE7Jqw6riwXG4gICAgICAgICAgICAgIGZvciAoY29uc3Qgcm93IG9mIHJvd3NXaXRob3V0SWQpIHtcbiAgICAgICAgICAgICAgICBpZiAocm93LmlkKSBjb250aW51ZTsgLy8g7J2066+4IOuLpOuluCB1bmlxdWVJbmRleOyXkOyEnCDssYTsm4zsp4Qg6rK97JqwIOyKpO2CtVxuXG4gICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gY29sdW1ucy5tYXAoKGNvbCkgPT4gU3RyaW5nKHJvd1tjb2xdID8/IFwiXCIpKS5qb2luKFwiLS0tZGVsaW1pdGVyLS0tXCIpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nSWQgPSBleGlzdGluZ01hcC5nZXQoa2V5KTtcblxuICAgICAgICAgICAgICAgIGlmIChleGlzdGluZ0lkKSB7XG4gICAgICAgICAgICAgICAgICByb3cuaWQgPSBleGlzdGluZ0lkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIG9uQ29uZmxpY3TripQgaWTrp4wg7IKs7JqpICjrqqjrk6AgdW5pcXVlSW5kZXhlc+uKlCDsnbTrr7gg7IKs7KCEIOyhsO2ajOuhnCDsspjrpqzrkKgpXG4gICAgICAgICAgY29uc3QgY29uZmxpY3RDb2x1bW5zID0gW1wiaWRcIl07XG5cbiAgICAgICAgICBjb25zdCBhbGxDb2x1bW5zID0gT2JqZWN0LmtleXMoZGF0YUZvckRiWzBdKTtcbiAgICAgICAgICBsZXQgdXBkYXRlQ29sdW1ucyA9IGFsbENvbHVtbnMuZmlsdGVyKChjKSA9PiBjICE9PSBcImlkXCIpO1xuXG4gICAgICAgICAgLy8gaW5oZXJpdCDsmLXshZgg7LKY66asIC0gaW5oZXJpdCDsu6zrn7zsnYAgdXBkYXRlIOuMgOyDgeyXkOyEnCDsoJzsmbhcbiAgICAgICAgICBpZiAob3B0aW9ucz8uaW5oZXJpdD8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAvLyBTQUZFVFk6IOy/vOumrCDruYzrjZTsnZgg7KCc64Sk66atIOqzhOyVveqzvCDshKDtlokg6rKA7Kad7J20IOydtCDtg4DsnoXsnYQg67O07J6l7ZWp64uI64ukLlxuICAgICAgICAgICAgY29uc3QgaW5oZXJpdENvbHVtbnMgPSBvcHRpb25zLmluaGVyaXQgYXMgc3RyaW5nW107XG5cbiAgICAgICAgICAgIGNvbnN0IGV4Y2x1ZGVkRnJvbVVwZGF0ZSA9IHVwZGF0ZUNvbHVtbnMuZmlsdGVyKChjKSA9PiBpbmhlcml0Q29sdW1ucy5pbmNsdWRlcyhjKSk7XG4gICAgICAgICAgICB1cGRhdGVDb2x1bW5zID0gdXBkYXRlQ29sdW1ucy5maWx0ZXIoKGMpID0+ICFpbmhlcml0Q29sdW1ucy5pbmNsdWRlcyhjKSk7XG5cbiAgICAgICAgICAgIC8vIOyLpOygnOuhnCDsoJzsmbjrkJwg7Lus65+8IOuhnOq5hVxuICAgICAgICAgICAgaWYgKGV4Y2x1ZGVkRnJvbVVwZGF0ZS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgTmFpdGUudChcInB1cmk6dWItaW5oZXJpdFwiLCB7XG4gICAgICAgICAgICAgICAgdGFibGVOYW1lLFxuICAgICAgICAgICAgICAgIGluaGVyaXRDb2x1bW5zLFxuICAgICAgICAgICAgICAgIGV4Y2x1ZGVkRnJvbVVwZGF0ZSxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gdXBkYXRlQ29sdW1uc+qwgCDruYTslrTsnojslrTrj4QgbWVyZ2UoKeulvCDsgqzsmqntlZjsl6wg66qo65OgIO2WieydtCBSRVRVUk5JTkfrkJjrj4TroZ0g67O07J6lXG4gICAgICAgICAgY29uc3QgbWVyZ2VDb2x1bW5zID0gdXBkYXRlQ29sdW1ucy5sZW5ndGggPyB1cGRhdGVDb2x1bW5zIDogY29uZmxpY3RDb2x1bW5zO1xuXG4gICAgICAgICAgcmVzdWx0Um93cyA9IGF3YWl0IHdkYlxuICAgICAgICAgICAgLmluc2VydChkYXRhRm9yRGIpXG4gICAgICAgICAgICAuaW50byh0YWJsZU5hbWUpXG4gICAgICAgICAgICAub25Db25mbGljdChjb25mbGljdENvbHVtbnMpXG4gICAgICAgICAgICAubWVyZ2UobWVyZ2VDb2x1bW5zKVxuICAgICAgICAgICAgLnJldHVybmluZyhzZWxlY3RGaWVsZHMpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9yaWdpbmFsVXVpZHMubGVuZ3RoICE9PSByZXN1bHRSb3dzLmxlbmd0aCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgJHt0YWJsZU5hbWV9OiByZWdpc3Rlci9yZXR1cm5pbmcg67aI7J287LmYYCk7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlc3VsdFJvd3MubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICB1dWlkTWFwLnNldChvcmlnaW5hbFV1aWRzW2ldLCByZXN1bHRSb3dzW2ldKTtcbiAgICAgICAgICBhbGxJZHMucHVzaChyZXN1bHRSb3dzW2ldLmlkKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIO2VtOuLuSDthYzsnbTruJQg7LC47KGw66W8IOyLpOygnCDrsLjrpZjroZwg67OA6rK9XG4gICAgZm9yIChjb25zdCByZWZlcmVuY2luZ1RhYmxlIG9mIHJlZlRhYmxlcykge1xuICAgICAgcmVmZXJlbmNpbmdUYWJsZS5yb3dzID0gcmVmZXJlbmNpbmdUYWJsZS5yb3dzLm1hcCgocm93KSA9PiB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHJvdykpIHtcbiAgICAgICAgICBjb25zdCBwcm9wID0gcm93W2tleV07XG4gICAgICAgICAgaWYgKGlzUmVmRmllbGQocHJvcCkgJiYgcHJvcC5vZiA9PT0gdGFibGVOYW1lKSB7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnQgPSB1dWlkTWFwLmdldChwcm9wLnV1aWQpO1xuICAgICAgICAgICAgaWYgKCFwYXJlbnQpIHtcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihwcm9wKTtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGDsobTsnqztlZjsp4Ag7JWK64qUIHV1aWQgJHtwcm9wLnV1aWR9IC0tIGluICR7dGFibGVOYW1lfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gU0FGRVRZOiDsv7zrpqwg67mM642U7J2YIOygnOuEpOumrSDqs4Tslb3qs7wg7ISg7ZaJIOqygOymneydtCDsnbQg7YOA7J6F7J2EIOuztOyepe2VqeuLiOuLpC5cbiAgICAgICAgICAgIGNvbnN0IHJlc29sdmVkVmFsdWUgPSBwYXJlbnRbcHJvcC51c2UgPz8gXCJpZFwiXTtcbiAgICAgICAgICAgIHJvd1trZXldID0gcmVzb2x2ZWRWYWx1ZTtcblxuICAgICAgICAgICAgTmFpdGUudChcInB1cmk6dWItcmVmLXJlc29sdmVkXCIsIHtcbiAgICAgICAgICAgICAgdGFibGVOYW1lLFxuICAgICAgICAgICAgICBmaWVsZDoga2V5LFxuICAgICAgICAgICAgICBmcm9tOiB7IG9mOiBwcm9wLm9mLCB1dWlkOiBwcm9wLnV1aWQsIHVzZTogcHJvcC51c2UgPz8gXCJpZFwiIH0sXG4gICAgICAgICAgICAgIHRvOiByZXNvbHZlZFZhbHVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByb3c7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucz8uY2xlYW5PcnBoYW5zKSB7XG4gICAgICBjb25zdCBjbGVhbk9ycGhhbnMgPSBvcHRpb25zLmNsZWFuT3JwaGFucztcbiAgICAgIGNvbnN0IGZrQ29sdW1ucyA9IGFzQXJyYXkoY2xlYW5PcnBoYW5zKTtcblxuICAgICAgLy8g7ZiE7J6sIHJlZ2lzdGVy65CcIOugiOy9lOuTnOuTpOydmCBGSyDqsJLrk6Qg7LaU7LacXG4gICAgICBjb25zdCBma0NvbmRpdGlvbnMgPSBma0NvbHVtbnMubWFwKChma0NvbCkgPT4ge1xuICAgICAgICBjb25zdCBma1ZhbHVlcyA9IFsuLi5uZXcgU2V0KHRhYmxlLnJvd3MubWFwKChyb3cpID0+IHJvd1tma0NvbF0pLmZpbHRlcihCb29sZWFuKSldO1xuICAgICAgICByZXR1cm4geyBjb2x1bW46IGZrQ29sLCB2YWx1ZXM6IGZrVmFsdWVzIH07XG4gICAgICB9KTtcblxuICAgICAgLy8g66qo65OgIEZLIOy7rOufvOyXkCDqsJLsnbQg7J6I64qUIOqyveyasOyXkOunjCDsgq3soJwg7Iuk7ZaJXG4gICAgICBpZiAoZmtDb25kaXRpb25zLmV2ZXJ5KChmYykgPT4gZmMudmFsdWVzLmxlbmd0aCA+IDApKSB7XG4gICAgICAgIGxldCBkZWxldGVRdWVyeSA9IHdkYih0YWJsZU5hbWUpO1xuXG4gICAgICAgIC8vIOqwgSBGSyDsu6zrn7zsl5Ag64yA7ZWcIFdIRVJFIElOIOyhsOqxtCDstpTqsIBcbiAgICAgICAgZm9yIChjb25zdCB7IGNvbHVtbiwgdmFsdWVzIH0gb2YgZmtDb25kaXRpb25zKSB7XG4gICAgICAgICAgLy8gU0FGRVRZOiDsv7zrpqwg67mM642U7J2YIOygnOuEpOumrSDqs4Tslb3qs7wg7ISg7ZaJIOqygOymneydtCDsnbQg7YOA7J6F7J2EIOuztOyepe2VqeuLiOuLpC5cbiAgICAgICAgICBkZWxldGVRdWVyeSA9IGRlbGV0ZVF1ZXJ5LndoZXJlSW4oY29sdW1uLCB2YWx1ZXMgYXMgS25leC5WYWx1ZVtdKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIOuwqeq4iCB1cHNlcnTtlZwgSUTripQg7KCc7Jm4XG4gICAgICAgIGRlbGV0ZVF1ZXJ5ID0gZGVsZXRlUXVlcnkud2hlcmVOb3RJbihcImlkXCIsIGFsbElkcyk7XG5cbiAgICAgICAgY29uc3QgZGVsZXRlZENvdW50ID0gYXdhaXQgZGVsZXRlUXVlcnkuZGVsZXRlKCk7XG5cbiAgICAgICAgTmFpdGUudChcInB1cmk6dWItY2xlYW4tb3JwaGFuc1wiLCB7XG4gICAgICAgICAgdGFibGVOYW1lLFxuICAgICAgICAgIGNsZWFuT3JwaGFuczogZmtDb2x1bW5zLFxuICAgICAgICAgIGRlbGV0ZWRDb3VudCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8g7ZW064u5IO2FjOydtOu4lOydmCDrjbDsnbTthLAg7LSI6riw7ZmUXG4gICAgdGFibGUucm93cyA9IFtdO1xuICAgIHRhYmxlLnJlZmVyZW5jZXMuY2xlYXIoKTtcbiAgICB0YWJsZS51bmlxdWVzTWFwLmNsZWFyKCk7XG5cbiAgICBOYWl0ZS50KFwicHVyaTp1Yi11cHNlcnRlZFwiLCB7XG4gICAgICB0YWJsZU5hbWUsXG4gICAgICBtb2RlLFxuICAgICAgcm93Q291bnQ6IGFsbElkcy5sZW5ndGgsXG4gICAgICByZXR1cm5lZElkczogYWxsSWRzLFxuICAgIH0pO1xuXG4gICAgLy8gU0FGRVRZOiDsv7zrpqwg67mM642U7J2YIOygnOuEpOumrSDqs4Tslb3qs7wg7ISg7ZaJIOqygOymneydtCDsnbQg7YOA7J6F7J2EIOuztOyepe2VqeuLiOuLpC5cbiAgICByZXR1cm4gYWxsSWRzIGFzIElkVHlwZTxEYXRhYmFzZVNjaGVtYUV4dGVuZCwgVFRhYmxlPltdO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlQmF0Y2goXG4gICAgd2RiOiBLbmV4LFxuICAgIHRhYmxlTmFtZTogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICBjaHVua1NpemU/OiBudW1iZXI7XG4gICAgICB3aGVyZT86IHN0cmluZyB8IHN0cmluZ1tdO1xuICAgIH0sXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIG9wdGlvbnMgPSB7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgY2h1bmtTaXplOiBvcHRpb25zPy5jaHVua1NpemUgPz8gNTAwLFxuICAgICAgd2hlcmU6IG9wdGlvbnM/LndoZXJlID8/IFwiaWRcIixcbiAgICB9O1xuXG4gICAgaWYgKCF0aGlzLmhhc1RhYmxlKHRhYmxlTmFtZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgdGFibGUgPSB0aGlzLnRhYmxlcy5nZXQodGFibGVOYW1lKTtcbiAgICBpZiAoIXRhYmxlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYOuTseuhneuQmOyngCDslYrsnYAg7YWM7J2067iUICR7dGFibGVOYW1lfeyXkCB1cGRhdGVCYXRjaCDsmpTssq1gKTtcbiAgICB9IGVsc2UgaWYgKHRhYmxlLnJvd3MubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgd2hlcmVDb2x1bW5zID0gQXJyYXkuaXNBcnJheShvcHRpb25zLndoZXJlKSA/IG9wdGlvbnMud2hlcmUgOiBbb3B0aW9ucy53aGVyZSA/PyBcImlkXCJdO1xuICAgIGNvbnN0IHJvd3MgPSB0YWJsZS5yb3dzLm1hcCgoX3JvdykgPT4ge1xuICAgICAgY29uc3QgeyB1dWlkOiBfLCAuLi5yb3cgfSA9IF9yb3c7IC8vIHV1aWQg7KCc7Jm4XG4gICAgICAvLyBTQUZFVFk6IOy/vOumrCDruYzrjZTsnZgg7KCc64Sk66atIOqzhOyVveqzvCDshKDtlokg6rKA7Kad7J20IOydtCDtg4DsnoXsnYQg67O07J6l7ZWp64uI64ukLlxuICAgICAgcmV0dXJuIHJvdyBhcyBSb3dXaXRoSWQ8c3RyaW5nPjtcbiAgICB9KTtcblxuICAgIGF3YWl0IGJhdGNoVXBkYXRlKHdkYiwgdGFibGVOYW1lLCB3aGVyZUNvbHVtbnMsIHJvd3MsIG9wdGlvbnMuY2h1bmtTaXplKTtcblxuICAgIE5haXRlLnQoXCJwdXJpOnViLWJhdGNoLXVwZGF0ZWRcIiwge1xuICAgICAgdGFibGVOYW1lLFxuICAgICAgcm93Q291bnQ6IHJvd3MubGVuZ3RoLFxuICAgICAgd2hlcmVDb2x1bW5zLFxuICAgIH0pO1xuXG4gICAgLy8gdXBkYXRlQmF0Y2gg7JmE66OMIO2bhCDsspjrpqzrkJwg642w7J207YSwIOygnOqxsFxuICAgIHRhYmxlLnJvd3MgPSBbXTtcbiAgICB0YWJsZS5yZWZlcmVuY2VzLmNsZWFyKCk7XG4gICAgdGFibGUudW5pcXVlc01hcC5jbGVhcigpO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBQcml2YXRlIEhlbHBlciBNZXRob2RzXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogcm93c+ulvCDsnZjsobTshLEg7Iic7ISc7JeQIOuUsOudvCDroIjrsqjrs4TroZwg6re466O57ZmUXG4gICAqIC0g7J6Q6riwIOywuOyhsCDsl4bripQg6rK97JqwIDog66qo65OgIHJvd3PqsIAgTGV2ZWwgMFxuICAgKiAtIOyekOq4sCDssLjsobAg7J6I64qUIOqyveyasCA6IOyekOq4sCDssLjsobAg6rSA6rOE66W8IOychOyDgSDsoJXroKztlZjsl6wg66CI67Ko67OE66GcIOq3uOujue2ZlFxuICAgKi9cbiAgcHJpdmF0ZSBidWlsZEluc2VydExldmVscyhyb3dzOiBVcHNlcnRSb3dbXSwgdGFibGVOYW1lOiBzdHJpbmcpIHtcbiAgICAvLyAxLiDsnpDquLAg7LC47KGw6rCAIOyXhuycvOuptCDtlZwg66CI67Ko66GcIOyymOumrFxuICAgIGNvbnN0IGhhc1NlbGZSZWYgPSByb3dzXG4gICAgICAuZmxhdE1hcCgocm93KSA9PiBPYmplY3QudmFsdWVzKHJvdykpXG4gICAgICAuc29tZSgodmFsdWUpID0+IGlzUmVmRmllbGQodmFsdWUpICYmIHZhbHVlLm9mID09PSB0YWJsZU5hbWUpO1xuICAgIGlmICghaGFzU2VsZlJlZikgcmV0dXJuIHsgbGV2ZWxzOiBbcm93c10sIGhhc0NpcmN1bGFyOiBmYWxzZSB9O1xuXG4gICAgLy8gMi4gdXVpZCDihpIgcm93IOunpO2VkSAo7KSR67O1IHV1aWQg67Cp7KeAKVxuICAgIGNvbnN0IHJvd0J5VXVpZCA9IG5ldyBNYXA8c3RyaW5nLCBVcHNlcnRSb3c+KCk7XG4gICAgZm9yIChjb25zdCByb3cgb2Ygcm93cykge1xuICAgICAgLy8gU0FGRVRZOiDsv7zrpqwg67mM642U7J2YIOygnOuEpOumrSDqs4Tslb3qs7wg7ISg7ZaJIOqygOymneydtCDsnbQg7YOA7J6F7J2EIOuztOyepe2VqeuLiOuLpC5cbiAgICAgIGNvbnN0IHV1aWQgPSByb3cudXVpZCBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICBpZiAoIXV1aWQpIHRocm93IG5ldyBFcnJvcihgYnVpbGRJbnNlcnRMZXZlbHM6IHV1aWTqsIAg7JeG64qUIHJvdyAtLSBpbiAke3RhYmxlTmFtZX1gKTtcbiAgICAgIHJvd0J5VXVpZC5zZXQodXVpZCwgcm93KTtcbiAgICB9XG5cbiAgICBsZXQgcGVuZGluZyA9IEFycmF5LmZyb20ocm93QnlVdWlkLnZhbHVlcygpKTtcbiAgICBjb25zdCBsZXZlbHM6IFVwc2VydFJvd1tdW10gPSBbXTtcbiAgICBjb25zdCBpbnNlcnRlZCA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gICAgLy8gMy4g66CI67Ko67OEIOu2hOulmFxuICAgIHdoaWxlIChwZW5kaW5nLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRMZXZlbDogVXBzZXJ0Um93W10gPSBbXTtcbiAgICAgIGNvbnN0IG5leHRQZW5kaW5nOiBVcHNlcnRSb3dbXSA9IFtdO1xuXG4gICAgICBmb3IgKGNvbnN0IHJvdyBvZiBwZW5kaW5nKSB7XG4gICAgICAgIC8vIOydtCByb3fqsIAg7LC47KGw7ZWY64qUIOyekOq4sCDssLjsobDrk6RcbiAgICAgICAgLy8gU0FGRVRZOiDsv7zrpqwg67mM642U7J2YIOygnOuEpOumrSDqs4Tslb3qs7wg7ISg7ZaJIOqygOymneydtCDsnbQg7YOA7J6F7J2EIOuztOyepe2VqeuLiOuLpC5cbiAgICAgICAgY29uc3Qgc2VsZlJlZnMgPSBPYmplY3QudmFsdWVzKHJvdykuZmlsdGVyKFxuICAgICAgICAgICh2YWx1ZSkgPT4gaXNSZWZGaWVsZCh2YWx1ZSkgJiYgdmFsdWUub2YgPT09IHRhYmxlTmFtZSxcbiAgICAgICAgKSBhcyBVQlJlZltdO1xuXG4gICAgICAgIC8vIOywuOyhsO2VmOuKlCDrqqjrk6AgdXVpZOqwgCDsnbTrr7ggaW5zZXJ0ZWTsl5Ag7J6I7Ja07JW8IOydtOuyiCDroIjrsqjsl5Ag7Y+s7ZWoXG4gICAgICAgIGNvbnN0IGNhbkluc2VydCA9IHNlbGZSZWZzLmV2ZXJ5KChyZWYpID0+IHtcbiAgICAgICAgICBpZiAoIXJvd0J5VXVpZC5oYXMocmVmLnV1aWQpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYOyhtOyerO2VmOyngCDslYrripQgdXVpZCAke3JlZi51dWlkfSAtLSBpbiAke3RhYmxlTmFtZX1gKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGluc2VydGVkLmhhcyhyZWYudXVpZCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChjYW5JbnNlcnQpIHtcbiAgICAgICAgICBjdXJyZW50TGV2ZWwucHVzaChyb3cpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5leHRQZW5kaW5nLnB1c2gocm93KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyDsiJztmZgg7LC47KGwIOqwkOyngFxuICAgICAgaWYgKGN1cnJlbnRMZXZlbC5sZW5ndGggPT09IDApIHJldHVybiB7IGxldmVsczogW10sIGhhc0NpcmN1bGFyOiB0cnVlIH07XG5cbiAgICAgIC8vIOugiOuyqCDtmZXsoJUgKyBpbnNlcnRlZCDqsLHsi6BcbiAgICAgIGxldmVscy5wdXNoKGN1cnJlbnRMZXZlbCk7XG4gICAgICBmb3IgKGNvbnN0IHJvdyBvZiBjdXJyZW50TGV2ZWwpIHtcbiAgICAgICAgLy8gU0FGRVRZOiDsv7zrpqwg67mM642U7J2YIOygnOuEpOumrSDqs4Tslb3qs7wg7ISg7ZaJIOqygOymneydtCDsnbQg7YOA7J6F7J2EIOuztOyepe2VqeuLiOuLpC5cbiAgICAgICAgaW5zZXJ0ZWQuYWRkKHJvdy51dWlkIGFzIHN0cmluZyk7XG4gICAgICB9XG5cbiAgICAgIHBlbmRpbmcgPSBuZXh0UGVuZGluZztcbiAgICB9XG5cbiAgICByZXR1cm4geyBsZXZlbHMsIGhhc0NpcmN1bGFyOiBmYWxzZSB9O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBeUVBLFNBQWdCLFdBQWtCLE9BQXNDO0NBQ3RFLE9BQU8sY0FBYyxLQUFLLEtBQUssUUFBUSxTQUFTLFVBQVU7QUFDNUQ7OztDQXJFd0Qsb0JBQUE7Q0FDbEIsV0FBQTtDQU1FLFdBQUE7Q0FDNEMsbUJBQUE7Q0FDekIsV0FBQTtDQUNkLG1CQUFBO0NBSXZDLFNBQVMsVUFBVTtFQUFDO0VBQVU7RUFBWTtDQUFnQixDQUFDO0NBeURwRCxnQkFBYixNQUEyQjtFQUN6QjtFQUNBLGNBQWM7R0FDWixLQUFLLHlCQUFTLElBQUksSUFBSTtFQUN4QjtFQUVBLFNBQVMsV0FBOEI7R0FDckMsTUFBTSxRQUFRLEtBQUssT0FBTyxJQUFJLFNBQVM7R0FDdkMsSUFBSSxPQUNGLE9BQU87R0FHVCxNQUFNLG1CQUFtQjtJQUN2QixJQUFJO0tBQ0YsT0FBTyxjQUFjLGFBQWEsU0FBUztJQUM3QyxRQUFRO0tBQ04sT0FBTztJQUNUO0dBQ0YsRUFBQSxDQUFHO0dBRUgsTUFBTSxZQUFZO0lBQ2hCLDRCQUFZLElBQUksSUFBWTtJQUM1QixNQUFNLENBQUM7SUFDUCxlQUFlLFdBQVcsaUJBQWlCLENBQUM7SUFDNUMsNEJBQVksSUFBSSxJQUFvQjtJQUNwQyxhQUFhLFdBQVcsZUFBZSxDQUFDO0dBQzFDO0dBQ0EsS0FBSyxP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
|
package/dist/dict/en.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { __esmMin } from "../_virtual/_rolldown/runtime.js";
|
|
2
2
|
import { init_rc_keys, rcKeysEn } from "./rc-keys.js";
|
|
3
|
-
|
|
3
|
+
// src/dict/en.ts
|
|
4
4
|
var en_default;
|
|
5
5
|
var init_en = __esmMin((() => {
|
|
6
6
|
init_rc_keys();
|
|
@@ -66,8 +66,7 @@ var init_en = __esmMin((() => {
|
|
|
66
66
|
"sonamu.error.devRunner.serverUnreachable": "Cannot connect to dev server. Make sure sonamu dev is running"
|
|
67
67
|
};
|
|
68
68
|
}));
|
|
69
|
-
//#endregion
|
|
70
69
|
init_en();
|
|
71
70
|
export { en_default as default, init_en };
|
|
72
71
|
|
|
73
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW4uanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RpY3QvZW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmNLZXlzRW4gfSBmcm9tIFwiLi9yYy1rZXlzXCI7XG5cbi8qKlxuICogU29uYW11IEJ1aWx0LWluIEVuZ2xpc2ggRGljdGlvbmFyeVxuICogUHJvamVjdCBjYW4gb3ZlcnJpZGUgdGhlc2UgYnkgZGVmaW5pbmcgdGhlIHNhbWUga2V5cy5cbiAqL1xuZXhwb3J0IGRlZmF1bHQge1xuICAvLyByZWFjdC1jb21wb25lbnRzIGkxOG4ga2V5c1xuICAuLi5yY0tleXNFbixcblxuICAvLyBFcnJvciBtZXNzYWdlc1xuICBcImVycm9yLmJhZFJlcXVlc3RcIjogXCJCYWQgUmVxdWVzdFwiLFxuICBcImVycm9yLnVuYXV0aG9yaXplZFwiOiBcIkF1dGhlbnRpY2F0aW9uIHJlcXVpcmVkXCIsXG4gIFwiZXJyb3IuZm9yYmlkZGVuXCI6IFwiUGVybWlzc2lvbiBkZW5pZWRcIixcbiAgXCJlcnJvci5ub3RGb3VuZFwiOiBcIk5vdCBmb3VuZFwiLFxuICBcImVycm9yLnNlcnZpY2VVbmF2YWlsYWJsZVwiOiBcIlNlcnZpY2UgdW5hdmFpbGFibGVcIixcbiAgXCJlcnJvci5pbnRlcm5hbFNlcnZlckVycm9yXCI6IFwiSW50ZXJuYWwgc2VydmVyIGVycm9yXCIsXG4gIFwiZXJyb3IuYWxyZWFkeVByb2Nlc3NlZFwiOiBcIkFscmVhZHkgcHJvY2Vzc2VkXCIsXG4gIFwiZXJyb3IuZHVwbGljYXRlUm93XCI6IFwiRHVwbGljYXRlIGRhdGFcIixcbiAgXCJlcnJvci50YXJnZXROb3RGb3VuZFwiOiBcIlRhcmdldCBub3QgZm91bmRcIixcbiAgXCJlcnJvci5hcGkubm90Rm91bmRcIjogXCJBUEkgbm90IGZvdW5kXCIsXG5cbiAgLy8gQ29tbW9uIFVJXG4gIFwiY29tbW9uLnNhdmVcIjogXCJTYXZlXCIsXG4gIFwiY29tbW9uLmNhbmNlbFwiOiBcIkNhbmNlbFwiLFxuICBcImNvbW1vbi5kZWxldGVcIjogXCJEZWxldGVcIixcbiAgXCJjb21tb24uZWRpdFwiOiBcIkVkaXRcIixcbiAgXCJjb21tb24uY3JlYXRlXCI6IFwiQ3JlYXRlXCIsXG4gIFwiY29tbW9uLnNlYXJjaFwiOiBcIlNlYXJjaFwiLFxuICBcImNvbW1vbi5zZWFyY2hQbGFjZWhvbGRlclwiOiBcIlNlYXJjaC4uLlwiLFxuICBcImNvbW1vbi5hbGxcIjogXCJBbGxcIixcbiAgXCJjb21tb24uY29uZmlybVwiOiBcIkNvbmZpcm1cIixcbiAgXCJjb21tb24uY2xvc2VcIjogXCJDbG9zZVwiLFxuICBcImNvbW1vbi5iYWNrVG9MaXN0XCI6IFwiQmFjayBUbyBMaXN0XCIsXG5cbiAgLy8gRm9ybVxuICBcImZvcm0uY3JlYXRlZEF0XCI6IFwiQ3JlYXRlZCBBdFwiLFxuXG4gIC8vIENvbmZpcm1hdGlvbiBtZXNzYWdlc1xuICBcImNvbmZpcm0uZGVsZXRlXCI6IFwiQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZT9cIixcbiAgXCJjb25maXJtLnNhdmVcIjogXCJEbyB5b3Ugd2FudCB0byBzYXZlP1wiLFxuXG4gIC8vIFZhbGlkYXRpb24gbWVzc2FnZXMgKHRlbXBsYXRlIGZ1bmN0aW9ucylcbiAgXCJ2YWxpZGF0aW9uLnJlcXVpcmVkXCI6IChmaWVsZDogc3RyaW5nKSA9PiBgJHtmaWVsZH0gaXMgcmVxdWlyZWRgLFxuICBcInZhbGlkYXRpb24ubWluTGVuZ3RoXCI6IChmaWVsZDogc3RyaW5nLCBtaW46IG51bWJlcikgPT5cbiAgICBgJHtmaWVsZH0gbXVzdCBiZSBhdCBsZWFzdCAke21pbn0gY2hhcmFjdGVyc2AsXG4gIFwidmFsaWRhdGlvbi5tYXhMZW5ndGhcIjogKGZpZWxkOiBzdHJpbmcsIG1heDogbnVtYmVyKSA9PlxuICAgIGAke2ZpZWxkfSBtdXN0IGJlIGF0IG1vc3QgJHttYXh9IGNoYXJhY3RlcnNgLFxuICBcInZhbGlkYXRpb24ucmFuZ2VcIjogKGZpZWxkOiBzdHJpbmcsIG1pbjogbnVtYmVyLCBtYXg6IG51bWJlcikgPT5cbiAgICBgJHtmaWVsZH0gbXVzdCBiZSBiZXR3ZWVuICR7bWlufSBhbmQgJHttYXh9YCxcbiAgXCJ2YWxpZGF0aW9uLmVtYWlsXCI6IFwiSW52YWxpZCBlbWFpbCBmb3JtYXRcIixcbiAgXCJ2YWxpZGF0aW9uLnVybFwiOiBcIkludmFsaWQgVVJMIGZvcm1hdFwiLFxuXG4gIC8vIEVudGl0eSBwYWdlcyAodGVtcGxhdGUgZnVuY3Rpb25zKVxuICBcImVudGl0eS5saXN0XCI6IChuYW1lOiBzdHJpbmcpID0+IGAke25hbWV9IExpc3RgLFxuICBcImVudGl0eS5saXN0TWFuYWdlXCI6IChuYW1lOiBzdHJpbmcpID0+IGAke25hbWV9IExpc3QgTWFuYWdlbWVudGAsXG4gIFwiZW50aXR5LmNyZWF0ZVwiOiAobmFtZTogc3RyaW5nKSA9PiBgQ3JlYXRlICR7bmFtZX1gLFxuICBcImVudGl0eS5lZGl0XCI6IChuYW1lOiBzdHJpbmcsIGlkOiBudW1iZXIgfCBzdHJpbmcpID0+IGBFZGl0ICR7bmFtZX0gKCMke2lkfSlgLFxuXG4gIC8vIEVycm9yIG1lc3NhZ2VzICh0ZW1wbGF0ZSBmdW5jdGlvbnMpXG4gIFwiZXJyb3IuZW50aXR5Tm90Rm91bmRcIjogKG5hbWU6IHN0cmluZywgaWQ6IG51bWJlciB8IHN0cmluZykgPT4gYCR7bmFtZX0gSUQgJHtpZH0gbm90IGZvdW5kYCxcbiAgXCJlcnJvci51bmtub3duU2VhcmNoRmllbGRcIjogKGZpZWxkOiBzdHJpbmcpID0+IGBVbmtub3duIHNlYXJjaCBmaWVsZDogJHtmaWVsZH1gLFxuXG4gIC8vIFNvbmFtdSBpbnRlcm5hbCBlcnJvciBtZXNzYWdlc1xuICBcInNvbmFtdS5lcnJvci5lbnRpdHlJZENhbWVsQ2FzZVwiOiBcImVudGl0eUlkIG11c3QgYmUgaW4gQ2FtZWxDYXNlIGZvcm1hdC5cIixcbiAgXCJzb25hbXUuZXJyb3Iuc3Vic2V0Tm90Rm91bmRcIjogKHN1YnNldDogc3RyaW5nKSA9PiBgU3Vic2V0ICR7c3Vic2V0fSBub3QgZm91bmQuYCxcbiAgXCJzb25hbXUuZXJyb3Iuc2hhZG93RGJUZXN0RmFpbGVkXCI6IFwiRXJyb3IgZHVyaW5nIFNoYWRvdyBEQiB0ZXN0XCIsXG4gIFwic29uYW11LmVycm9yLmFsbEZpbGVzRXhpc3RcIjogXCJBbGwgZmlsZXMgYWxyZWFkeSBleGlzdCBhdCB0aGUgcGF0aC5cIixcbiAgXCJzb25hbXUuZXJyb3IuYWxsRmlsZXNHZW5lcmF0ZWRcIjogXCJBbGwgZmlsZXMgaGF2ZSBhbHJlYWR5IGJlZW4gZ2VuZXJhdGVkLlwiLFxuICBcInNvbmFtdS5lcnJvci5maXh0dXJlUmVjb3JkUmVxdWlyZWRcIjogXCJGaXh0dXJlIHJlY29yZCBub3QgZm91bmQuIFBsZWFzZSBmZXRjaCBmaXh0dXJlcyBmaXJzdC5cIixcbiAgXCJzb25hbXUuZXJyb3IucHJlc2V0T3JBYnNQYXRoUmVxdWlyZWRcIjogXCJwcmVzZXQgb3IgYWJzUGF0aCBtdXN0IGJlIHByb3ZpZGVkXCIsXG4gIFwic29uYW11LmVycm9yLmVudGl0eUlkc1JlcXVpcmVkXCI6IFwiZW50aXR5SWRzIG11c3QgYmUgcHJvdmlkZWRcIixcbiAgXCJzb25hbXUuZXJyb3IudGVtcGxhdGVLZXlzUmVxdWlyZWRcIjogXCJ0ZW1wbGF0ZUtleXMgbXVzdCBiZSBwcm92aWRlZFwiLFxuICBcInNvbmFtdS5lcnJvci5lbnVtSWRzUmVxdWlyZWRcIjogXCJlbnVtSWRzIG11c3QgYmUgcHJvdmlkZWRcIixcbiAgXCJzb25hbXUuZXJyb3Iub3B0aW9uc1JlcXVpcmVkXCI6IFwib3B0aW9ucyBtdXN0IGJlIHByb3ZpZGVkXCIsXG4gIFwic29uYW11LmVycm9yLmZpbGVOb3RVcGxvYWRlZFwiOiBcIkZpbGUgbm90IHVwbG9hZGVkXCIsXG4gIFwic29uYW11LmVycm9yLmhlYWRlclJvd05vdEZvdW5kXCI6IFwiSGVhZGVyIHJvdyBub3QgZm91bmQuIFRoZSBmaXJzdCBjb2x1bW4gbXVzdCBiZSAna2V5Jy5cIixcbiAgXCJzb25hbXUuZXJyb3Iua2V5UmVxdWlyZWRcIjogXCJLZXkgaXMgcmVxdWlyZWRcIixcbiAgXCJzb25hbXUuZXJyb3Iua2V5QWxyZWFkeUV4aXN0c1wiOiAoa2V5OiBzdHJpbmcpID0+
|
|
72
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW4uanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RpY3QvZW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmNLZXlzRW4gfSBmcm9tIFwiLi9yYy1rZXlzXCI7XG5cbi8qKlxuICogU29uYW11IEJ1aWx0LWluIEVuZ2xpc2ggRGljdGlvbmFyeVxuICogUHJvamVjdCBjYW4gb3ZlcnJpZGUgdGhlc2UgYnkgZGVmaW5pbmcgdGhlIHNhbWUga2V5cy5cbiAqL1xuZXhwb3J0IGRlZmF1bHQge1xuICAvLyByZWFjdC1jb21wb25lbnRzIGkxOG4ga2V5c1xuICAuLi5yY0tleXNFbixcblxuICAvLyBFcnJvciBtZXNzYWdlc1xuICBcImVycm9yLmJhZFJlcXVlc3RcIjogXCJCYWQgUmVxdWVzdFwiLFxuICBcImVycm9yLnVuYXV0aG9yaXplZFwiOiBcIkF1dGhlbnRpY2F0aW9uIHJlcXVpcmVkXCIsXG4gIFwiZXJyb3IuZm9yYmlkZGVuXCI6IFwiUGVybWlzc2lvbiBkZW5pZWRcIixcbiAgXCJlcnJvci5ub3RGb3VuZFwiOiBcIk5vdCBmb3VuZFwiLFxuICBcImVycm9yLnNlcnZpY2VVbmF2YWlsYWJsZVwiOiBcIlNlcnZpY2UgdW5hdmFpbGFibGVcIixcbiAgXCJlcnJvci5pbnRlcm5hbFNlcnZlckVycm9yXCI6IFwiSW50ZXJuYWwgc2VydmVyIGVycm9yXCIsXG4gIFwiZXJyb3IuYWxyZWFkeVByb2Nlc3NlZFwiOiBcIkFscmVhZHkgcHJvY2Vzc2VkXCIsXG4gIFwiZXJyb3IuZHVwbGljYXRlUm93XCI6IFwiRHVwbGljYXRlIGRhdGFcIixcbiAgXCJlcnJvci50YXJnZXROb3RGb3VuZFwiOiBcIlRhcmdldCBub3QgZm91bmRcIixcbiAgXCJlcnJvci5hcGkubm90Rm91bmRcIjogXCJBUEkgbm90IGZvdW5kXCIsXG5cbiAgLy8gQ29tbW9uIFVJXG4gIFwiY29tbW9uLnNhdmVcIjogXCJTYXZlXCIsXG4gIFwiY29tbW9uLmNhbmNlbFwiOiBcIkNhbmNlbFwiLFxuICBcImNvbW1vbi5kZWxldGVcIjogXCJEZWxldGVcIixcbiAgXCJjb21tb24uZWRpdFwiOiBcIkVkaXRcIixcbiAgXCJjb21tb24uY3JlYXRlXCI6IFwiQ3JlYXRlXCIsXG4gIFwiY29tbW9uLnNlYXJjaFwiOiBcIlNlYXJjaFwiLFxuICBcImNvbW1vbi5zZWFyY2hQbGFjZWhvbGRlclwiOiBcIlNlYXJjaC4uLlwiLFxuICBcImNvbW1vbi5hbGxcIjogXCJBbGxcIixcbiAgXCJjb21tb24uY29uZmlybVwiOiBcIkNvbmZpcm1cIixcbiAgXCJjb21tb24uY2xvc2VcIjogXCJDbG9zZVwiLFxuICBcImNvbW1vbi5iYWNrVG9MaXN0XCI6IFwiQmFjayBUbyBMaXN0XCIsXG5cbiAgLy8gRm9ybVxuICBcImZvcm0uY3JlYXRlZEF0XCI6IFwiQ3JlYXRlZCBBdFwiLFxuXG4gIC8vIENvbmZpcm1hdGlvbiBtZXNzYWdlc1xuICBcImNvbmZpcm0uZGVsZXRlXCI6IFwiQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZT9cIixcbiAgXCJjb25maXJtLnNhdmVcIjogXCJEbyB5b3Ugd2FudCB0byBzYXZlP1wiLFxuXG4gIC8vIFZhbGlkYXRpb24gbWVzc2FnZXMgKHRlbXBsYXRlIGZ1bmN0aW9ucylcbiAgXCJ2YWxpZGF0aW9uLnJlcXVpcmVkXCI6IChmaWVsZDogc3RyaW5nKSA9PiBgJHtmaWVsZH0gaXMgcmVxdWlyZWRgLFxuICBcInZhbGlkYXRpb24ubWluTGVuZ3RoXCI6IChmaWVsZDogc3RyaW5nLCBtaW46IG51bWJlcikgPT5cbiAgICBgJHtmaWVsZH0gbXVzdCBiZSBhdCBsZWFzdCAke21pbn0gY2hhcmFjdGVyc2AsXG4gIFwidmFsaWRhdGlvbi5tYXhMZW5ndGhcIjogKGZpZWxkOiBzdHJpbmcsIG1heDogbnVtYmVyKSA9PlxuICAgIGAke2ZpZWxkfSBtdXN0IGJlIGF0IG1vc3QgJHttYXh9IGNoYXJhY3RlcnNgLFxuICBcInZhbGlkYXRpb24ucmFuZ2VcIjogKGZpZWxkOiBzdHJpbmcsIG1pbjogbnVtYmVyLCBtYXg6IG51bWJlcikgPT5cbiAgICBgJHtmaWVsZH0gbXVzdCBiZSBiZXR3ZWVuICR7bWlufSBhbmQgJHttYXh9YCxcbiAgXCJ2YWxpZGF0aW9uLmVtYWlsXCI6IFwiSW52YWxpZCBlbWFpbCBmb3JtYXRcIixcbiAgXCJ2YWxpZGF0aW9uLnVybFwiOiBcIkludmFsaWQgVVJMIGZvcm1hdFwiLFxuXG4gIC8vIEVudGl0eSBwYWdlcyAodGVtcGxhdGUgZnVuY3Rpb25zKVxuICBcImVudGl0eS5saXN0XCI6IChuYW1lOiBzdHJpbmcpID0+IGAke25hbWV9IExpc3RgLFxuICBcImVudGl0eS5saXN0TWFuYWdlXCI6IChuYW1lOiBzdHJpbmcpID0+IGAke25hbWV9IExpc3QgTWFuYWdlbWVudGAsXG4gIFwiZW50aXR5LmNyZWF0ZVwiOiAobmFtZTogc3RyaW5nKSA9PiBgQ3JlYXRlICR7bmFtZX1gLFxuICBcImVudGl0eS5lZGl0XCI6IChuYW1lOiBzdHJpbmcsIGlkOiBudW1iZXIgfCBzdHJpbmcpID0+IGBFZGl0ICR7bmFtZX0gKCMke2lkfSlgLFxuXG4gIC8vIEVycm9yIG1lc3NhZ2VzICh0ZW1wbGF0ZSBmdW5jdGlvbnMpXG4gIFwiZXJyb3IuZW50aXR5Tm90Rm91bmRcIjogKG5hbWU6IHN0cmluZywgaWQ6IG51bWJlciB8IHN0cmluZykgPT4gYCR7bmFtZX0gSUQgJHtpZH0gbm90IGZvdW5kYCxcbiAgXCJlcnJvci51bmtub3duU2VhcmNoRmllbGRcIjogKGZpZWxkOiBzdHJpbmcpID0+IGBVbmtub3duIHNlYXJjaCBmaWVsZDogJHtmaWVsZH1gLFxuXG4gIC8vIFNvbmFtdSBpbnRlcm5hbCBlcnJvciBtZXNzYWdlc1xuICBcInNvbmFtdS5lcnJvci5lbnRpdHlJZENhbWVsQ2FzZVwiOiBcImVudGl0eUlkIG11c3QgYmUgaW4gQ2FtZWxDYXNlIGZvcm1hdC5cIixcbiAgXCJzb25hbXUuZXJyb3Iuc3Vic2V0Tm90Rm91bmRcIjogKHN1YnNldDogc3RyaW5nKSA9PiBgU3Vic2V0ICR7c3Vic2V0fSBub3QgZm91bmQuYCxcbiAgXCJzb25hbXUuZXJyb3Iuc2hhZG93RGJUZXN0RmFpbGVkXCI6IFwiRXJyb3IgZHVyaW5nIFNoYWRvdyBEQiB0ZXN0XCIsXG4gIFwic29uYW11LmVycm9yLmFsbEZpbGVzRXhpc3RcIjogXCJBbGwgZmlsZXMgYWxyZWFkeSBleGlzdCBhdCB0aGUgcGF0aC5cIixcbiAgXCJzb25hbXUuZXJyb3IuYWxsRmlsZXNHZW5lcmF0ZWRcIjogXCJBbGwgZmlsZXMgaGF2ZSBhbHJlYWR5IGJlZW4gZ2VuZXJhdGVkLlwiLFxuICBcInNvbmFtdS5lcnJvci5maXh0dXJlUmVjb3JkUmVxdWlyZWRcIjogXCJGaXh0dXJlIHJlY29yZCBub3QgZm91bmQuIFBsZWFzZSBmZXRjaCBmaXh0dXJlcyBmaXJzdC5cIixcbiAgXCJzb25hbXUuZXJyb3IucHJlc2V0T3JBYnNQYXRoUmVxdWlyZWRcIjogXCJwcmVzZXQgb3IgYWJzUGF0aCBtdXN0IGJlIHByb3ZpZGVkXCIsXG4gIFwic29uYW11LmVycm9yLmVudGl0eUlkc1JlcXVpcmVkXCI6IFwiZW50aXR5SWRzIG11c3QgYmUgcHJvdmlkZWRcIixcbiAgXCJzb25hbXUuZXJyb3IudGVtcGxhdGVLZXlzUmVxdWlyZWRcIjogXCJ0ZW1wbGF0ZUtleXMgbXVzdCBiZSBwcm92aWRlZFwiLFxuICBcInNvbmFtdS5lcnJvci5lbnVtSWRzUmVxdWlyZWRcIjogXCJlbnVtSWRzIG11c3QgYmUgcHJvdmlkZWRcIixcbiAgXCJzb25hbXUuZXJyb3Iub3B0aW9uc1JlcXVpcmVkXCI6IFwib3B0aW9ucyBtdXN0IGJlIHByb3ZpZGVkXCIsXG4gIFwic29uYW11LmVycm9yLmZpbGVOb3RVcGxvYWRlZFwiOiBcIkZpbGUgbm90IHVwbG9hZGVkXCIsXG4gIFwic29uYW11LmVycm9yLmhlYWRlclJvd05vdEZvdW5kXCI6IFwiSGVhZGVyIHJvdyBub3QgZm91bmQuIFRoZSBmaXJzdCBjb2x1bW4gbXVzdCBiZSAna2V5Jy5cIixcbiAgXCJzb25hbXUuZXJyb3Iua2V5UmVxdWlyZWRcIjogXCJLZXkgaXMgcmVxdWlyZWRcIixcbiAgXCJzb25hbXUuZXJyb3Iua2V5QWxyZWFkeUV4aXN0c1wiOiAoa2V5OiBzdHJpbmcpID0+IGBLZXkgYWxyZWFkeSBleGlzdHM6ICR7a2V5fWAsXG4gIFwic29uYW11LmVycm9yLmtleU5vdEZvdW5kXCI6IChrZXk6IHN0cmluZykgPT4gYEtleSBub3QgZm91bmQ6ICR7a2V5fWAsXG4gIFwic29uYW11LmVycm9yLm1pZ3JhdGlvblJlamVjdGVkXCI6IFwiTWlncmF0aW9uIGhhcyBiZWVuIHJlamVjdGVkXCIsXG4gIFwic29uYW11LmVycm9yLnNsYWNrQ29uZmlybU5vdENvbmZpZ3VyZWRcIjogXCJTbGFjayBDb25maXJtIGlzIG5vdCBjb25maWd1cmVkXCIsXG4gIFwic29uYW11LmVycm9yLnNsYWNrQ29uZmlybUludmFsaWRUYXJnZXRzXCI6ICh0YXJnZXRzOiBzdHJpbmcsIHZhbGlkVGFyZ2V0czogc3RyaW5nKSA9PlxuICAgIGBTbGFjayBDb25maXJtIHRhcmdldHMgaW5jbHVkZSB1bmtub3duIERCIGtleXM6ICR7dGFyZ2V0c30uIFZhbGlkIHRhcmdldHM6ICR7dmFsaWRUYXJnZXRzfWAsXG4gIFwic29uYW11LmVycm9yLmRldlJ1bm5lci5ub3RFbmFibGVkXCI6XG4gICAgXCJkZXZSdW5uZXIgaXMgbm90IGVuYWJsZWQuIFNldCB0ZXN0LmRldlJ1bm5lci5lbmFibGVkOiB0cnVlIGluIHNvbmFtdS5jb25maWcudHNcIixcbiAgXCJzb25hbXUuZXJyb3IuZGV2UnVubmVyLm5vdFJlYWR5XCI6IFwiVml0ZXN0IGluc3RhbmNlIGlzIG5vdCByZWFkeSB5ZXRcIixcbiAgXCJzb25hbXUuZXJyb3IuZGV2UnVubmVyLnNlcnZlclVucmVhY2hhYmxlXCI6XG4gICAgXCJDYW5ub3QgY29ubmVjdCB0byBkZXYgc2VydmVyLiBNYWtlIHN1cmUgc29uYW11IGRldiBpcyBydW5uaW5nXCIsXG59IGFzIGNvbnN0O1xuIl0sIm1hcHBpbmdzIjoiOzs7OztDQUFvQyxhQUFBO0NBTXJCLGFBQUE7RUFFYixHQUFHO0VBR0gsb0JBQW9CO0VBQ3BCLHNCQUFzQjtFQUN0QixtQkFBbUI7RUFDbkIsa0JBQWtCO0VBQ2xCLDRCQUE0QjtFQUM1Qiw2QkFBNkI7RUFDN0IsMEJBQTBCO0VBQzFCLHNCQUFzQjtFQUN0Qix3QkFBd0I7RUFDeEIsc0JBQXNCO0VBR3RCLGVBQWU7RUFDZixpQkFBaUI7RUFDakIsaUJBQWlCO0VBQ2pCLGVBQWU7RUFDZixpQkFBaUI7RUFDakIsaUJBQWlCO0VBQ2pCLDRCQUE0QjtFQUM1QixjQUFjO0VBQ2Qsa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQixxQkFBcUI7RUFHckIsa0JBQWtCO0VBR2xCLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFHaEIsd0JBQXdCLFVBQWtCLEdBQUcsTUFBTTtFQUNuRCx5QkFBeUIsT0FBZSxRQUN0QyxHQUFHLE1BQU0sb0JBQW9CLElBQUk7RUFDbkMseUJBQXlCLE9BQWUsUUFDdEMsR0FBRyxNQUFNLG1CQUFtQixJQUFJO0VBQ2xDLHFCQUFxQixPQUFlLEtBQWEsUUFDL0MsR0FBRyxNQUFNLG1CQUFtQixJQUFJLE9BQU87RUFDekMsb0JBQW9CO0VBQ3BCLGtCQUFrQjtFQUdsQixnQkFBZ0IsU0FBaUIsR0FBRyxLQUFLO0VBQ3pDLHNCQUFzQixTQUFpQixHQUFHLEtBQUs7RUFDL0Msa0JBQWtCLFNBQWlCLFVBQVU7RUFDN0MsZ0JBQWdCLE1BQWMsT0FBd0IsUUFBUSxLQUFLLEtBQUssR0FBRztFQUczRSx5QkFBeUIsTUFBYyxPQUF3QixHQUFHLEtBQUssTUFBTSxHQUFHO0VBQ2hGLDZCQUE2QixVQUFrQix5QkFBeUI7RUFHeEUsa0NBQWtDO0VBQ2xDLGdDQUFnQyxXQUFtQixVQUFVLE9BQU87RUFDcEUsbUNBQW1DO0VBQ25DLDhCQUE4QjtFQUM5QixrQ0FBa0M7RUFDbEMsc0NBQXNDO0VBQ3RDLHdDQUF3QztFQUN4QyxrQ0FBa0M7RUFDbEMscUNBQXFDO0VBQ3JDLGdDQUFnQztFQUNoQyxnQ0FBZ0M7RUFDaEMsZ0NBQWdDO0VBQ2hDLGtDQUFrQztFQUNsQyw0QkFBNEI7RUFDNUIsa0NBQWtDLFFBQWdCLHVCQUF1QjtFQUN6RSw2QkFBNkIsUUFBZ0Isa0JBQWtCO0VBQy9ELGtDQUFrQztFQUNsQywwQ0FBMEM7RUFDMUMsNENBQTRDLFNBQWlCLGlCQUMzRCxrREFBa0QsUUFBUSxtQkFBbUI7RUFDL0UscUNBQ0U7RUFDRixtQ0FBbUM7RUFDbkMsNENBQ0U7Q0FDSiJ9
|
package/dist/dict/index.js
CHANGED
|
@@ -3,11 +3,11 @@ import ko_default, { init_ko } from "./ko.js";
|
|
|
3
3
|
import { SonamuDictionary, init_sonamu_dictionary, sonamuDictionary } from "./sonamu-dictionary.js";
|
|
4
4
|
import "./types.js";
|
|
5
5
|
import { createFormat, josa, plural } from "./utils.js";
|
|
6
|
-
|
|
6
|
+
// src/dict/index.ts
|
|
7
7
|
init_en();
|
|
8
8
|
init_ko();
|
|
9
9
|
init_sonamu_dictionary();
|
|
10
|
-
|
|
10
|
+
init_sonamu_dictionary();
|
|
11
11
|
export { SonamuDictionary, createFormat, josa, plural, en_default as sonamuDictEn, ko_default as sonamuDictKo, sonamuDictionary };
|
|
12
12
|
|
|
13
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RpY3QvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTb25hbXUgQnVpbHQtaW4gRGljdGlvbmFyeVxuICpcbiAqIFVzYWdlOlxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0IHsgc29uYW11RGljdEtvLCBzb25hbXVEaWN0RW4gfSBmcm9tICdzb25hbXUvZGljdCc7XG4gKiBgYGBcbiAqL1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIHNvbmFtdURpY3RFbiB9IGZyb20gXCIuL2VuXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHNvbmFtdURpY3RLbyB9IGZyb20gXCIuL2tvXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zb25hbXUtZGljdGlvbmFyeVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdHlwZXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3V0aWxzXCI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQVM4QyxRQUFBO0FBQ0EsUUFBQSJ9
|
package/dist/dict/ko.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { __esmMin } from "../_virtual/_rolldown/runtime.js";
|
|
2
2
|
import { init_rc_keys, rcKeysKo } from "./rc-keys.js";
|
|
3
|
-
|
|
3
|
+
// src/dict/ko.ts
|
|
4
4
|
var ko_default;
|
|
5
5
|
var init_ko = __esmMin((() => {
|
|
6
6
|
init_rc_keys();
|
|
@@ -66,8 +66,7 @@ var init_ko = __esmMin((() => {
|
|
|
66
66
|
"sonamu.error.devRunner.serverUnreachable": "dev 서버에 연결할 수 없습니다. sonamu dev가 실행 중인지 확인하세요"
|
|
67
67
|
};
|
|
68
68
|
}));
|
|
69
|
-
//#endregion
|
|
70
69
|
init_ko();
|
|
71
70
|
export { ko_default as default, init_ko };
|
|
72
71
|
|
|
73
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia28uanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RpY3Qva28udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmNLZXlzS28gfSBmcm9tIFwiLi9yYy1rZXlzXCI7XG5cbi8qKlxuICogU29uYW11IOuCtOyepSDtlZzqta3slrQgRGljdGlvbmFyeVxuICog7ZSE66Gc7KCd7Yq47JeQ7IScIOuPmeydvO2VnCDtgqTrpbwg7KCV7J2Y7ZWY66m0IOuNruyWtOyUgeuLiOuLpC5cbiAqL1xuZXhwb3J0IGRlZmF1bHQge1xuICAvLyByZWFjdC1jb21wb25lbnRzIGkxOG4ga2V5c1xuICAuLi5yY0tleXNLbyxcblxuICAvLyDsl5Drn6wg66mU7Iuc7KeAXG4gIFwiZXJyb3IuYmFkUmVxdWVzdFwiOiBcIuyemOuqu+uQnCDsmpTssq3snoXri4jri6RcIixcbiAgXCJlcnJvci51bmF1dGhvcml6ZWRcIjogXCLsnbjspp3snbQg7ZWE7JqU7ZWp64uI64ukXCIsXG4gIFwiZXJyb3IuZm9yYmlkZGVuXCI6IFwi6raM7ZWc7J20IOyXhuyKteuLiOuLpFwiLFxuICBcImVycm9yLm5vdEZvdW5kXCI6IFwi7LC+7J2EIOyImCDsl4bsirXri4jri6RcIixcbiAgXCJlcnJvci5zZXJ2aWNlVW5hdmFpbGFibGVcIjogXCLshJzruYTsiqTrpbwg7IKs7Jqp7ZWgIOyImCDsl4bsirXri4jri6RcIixcbiAgXCJlcnJvci5pbnRlcm5hbFNlcnZlckVycm9yXCI6IFwi7ISc67KEIOyYpOulmOqwgCDrsJzsg53tlojsirXri4jri6RcIixcbiAgXCJlcnJvci5hbHJlYWR5UHJvY2Vzc2VkXCI6IFwi7J2066+4IOyymOumrOuQmOyXiOyKteuLiOuLpFwiLFxuICBcImVycm9yLmR1cGxpY2F0ZVJvd1wiOiBcIuykkeuzteuQnCDrjbDsnbTthLDsnoXri4jri6RcIixcbiAgXCJlcnJvci50YXJnZXROb3RGb3VuZFwiOiBcIuuMgOyDgeydhCDssL7snYQg7IiYIOyXhuyKteuLiOuLpFwiLFxuICBcImVycm9yLmFwaS5ub3RGb3VuZFwiOiBcIuyhtOyerO2VmOyngCDslYrripQgQVBJ7J6F64uI64ukXCIsXG5cbiAgLy8g6rO17Ya1IFVJXG4gIFwiY29tbW9uLnNhdmVcIjogXCLsoIDsnqVcIixcbiAgXCJjb21tb24uY2FuY2VsXCI6IFwi7Leo7IaMXCIsXG4gIFwiY29tbW9uLmRlbGV0ZVwiOiBcIuyCreygnFwiLFxuICBcImNvbW1vbi5lZGl0XCI6IFwi7IiY7KCVXCIsXG4gIFwiY29tbW9uLmNyZWF0ZVwiOiBcIuyDneyEsVwiLFxuICBcImNvbW1vbi5zZWFyY2hcIjogXCLqsoDsg4lcIixcbiAgXCJjb21tb24uc2VhcmNoUGxhY2Vob2xkZXJcIjogXCLqsoDsg4kuLi5cIixcbiAgXCJjb21tb24uYWxsXCI6IFwi7KCE7LK0XCIsXG4gIFwiY29tbW9uLmNvbmZpcm1cIjogXCLtmZXsnbhcIixcbiAgXCJjb21tb24uY2xvc2VcIjogXCLri6vquLBcIixcbiAgXCJjb21tb24uYmFja1RvTGlzdFwiOiBcIuuqqeuhneycvOuhnFwiLFxuXG4gIC8vIO2PvFxuICBcImZvcm0uY3JlYXRlZEF0XCI6IFwi7IOd7ISx7J287IucXCIsXG5cbiAgLy8g7ZmV7J24IOuplOyLnOyngFxuICBcImNvbmZpcm0uZGVsZXRlXCI6IFwi7KCV66eQIOyCreygnO2VmOyLnOqyoOyKteuLiOq5jD9cIixcbiAgXCJjb25maXJtLnNhdmVcIjogXCLsoIDsnqXtlZjsi5zqsqDsirXri4jquYw/XCIsXG5cbiAgLy8g6rKA7KadIOuplOyLnOyngCAo7YWc7ZSM66a/IO2VqOyImClcbiAgXCJ2YWxpZGF0aW9uLnJlcXVpcmVkXCI6IChmaWVsZDogc3RyaW5nKSA9PiBgJHtmaWVsZH3snYAo64qUKSDtlYTsiJjsnoXri4jri6RgLFxuICBcInZhbGlkYXRpb24ubWluTGVuZ3RoXCI6IChmaWVsZDogc3RyaW5nLCBtaW46IG51bWJlcikgPT5cbiAgICBgJHtmaWVsZH3snYAo64qUKSDstZzshowgJHttaW597J6QIOydtOyDgeydtOyWtOyVvCDtlanri4jri6RgLFxuICBcInZhbGlkYXRpb24ubWF4TGVuZ3RoXCI6IChmaWVsZDogc3RyaW5nLCBtYXg6IG51bWJlcikgPT5cbiAgICBgJHtmaWVsZH3snYAo64qUKSDstZzrjIAgJHttYXh97J6Q6rmM7KeAIOyeheugpe2VoCDsiJgg7J6I7Iq164uI64ukYCxcbiAgXCJ2YWxpZGF0aW9uLnJhbmdlXCI6IChmaWVsZDogc3RyaW5nLCBtaW46IG51bWJlciwgbWF4OiBudW1iZXIpID0+XG4gICAgYCR7ZmllbGR97J2AKOuKlCkgJHttaW59fiR7bWF4fSDsgqzsnbTsl6zslbwg7ZWp64uI64ukYCxcbiAgXCJ2YWxpZGF0aW9uLmVtYWlsXCI6IFwi7Jis67CU66W4IOydtOuplOydvCDtmJXsi53snbQg7JWE64uZ64uI64ukXCIsXG4gIFwidmFsaWRhdGlvbi51cmxcIjogXCLsmKzrsJTrpbggVVJMIO2YleyLneydtCDslYTri5nri4jri6RcIixcblxuICAvLyBFbnRpdHkg7Y6Y7J207KeAICjthZztlIzrpr8g7ZWo7IiYKVxuICBcImVudGl0eS5saXN0XCI6IChuYW1lOiBzdHJpbmcpID0+IGAke25hbWV9IOuqqeuhnWAsXG4gIFwiZW50aXR5Lmxpc3RNYW5hZ2VcIjogKG5hbWU6IHN0cmluZykgPT4gYCR7bmFtZX0g66qp66GdIOq0gOumrGAsXG4gIFwiZW50aXR5LmNyZWF0ZVwiOiAobmFtZTogc3RyaW5nKSA9PiBgJHtuYW1lfSDsg53shLFgLFxuICBcImVudGl0eS5lZGl0XCI6IChuYW1lOiBzdHJpbmcsIGlkOiBudW1iZXIgfCBzdHJpbmcpID0+IGAke25hbWV9IOyImOyglSAoIyR7aWR9KWAsXG5cbiAgLy8g7JeQ65+sIOuplOyLnOyngCAo7YWc7ZSM66a/IO2VqOyImClcbiAgXCJlcnJvci5lbnRpdHlOb3RGb3VuZFwiOiAobmFtZTogc3RyaW5nLCBpZDogbnVtYmVyIHwgc3RyaW5nKSA9PiBg7KG07J6s7ZWY7KeAIOyViuuKlCAke25hbWV9IElEICR7aWR9YCxcbiAgXCJlcnJvci51bmtub3duU2VhcmNoRmllbGRcIjogKGZpZWxkOiBzdHJpbmcpID0+IGDqtaztmITrkJjsp4Ag7JWK7J2AIOqygOyDiSDtlYTrk5wgJHtmaWVsZH1gLFxuXG4gIC8vIFNvbmFtdSDrgrTrtoAg7JeQ65+sIOuplOyLnOyngFxuICBcInNvbmFtdS5lcnJvci5lbnRpdHlJZENhbWVsQ2FzZVwiOiBcImVudGl0eUlk64qUIENhbWVsQ2FzZSDtmJXsi53snbTslrTslbwg7ZWp64uI64ukLlwiLFxuICBcInNvbmFtdS5lcnJvci5zdWJzZXROb3RGb3VuZFwiOiAoc3Vic2V0OiBzdHJpbmcpID0+IGBTdWJzZXQgJHtzdWJzZXR9IOqwgCDsl4bsirXri4jri6QuYCxcbiAgXCJzb25hbXUuZXJyb3Iuc2hhZG93RGJUZXN0RmFpbGVkXCI6IFwiU2hhZG93IERCIO2FjOyKpO2KuCDsp4Ttlokg7KSRIOyXkOufrFwiLFxuICBcInNvbmFtdS5lcnJvci5hbGxGaWxlc0V4aXN0XCI6IFwi7J2066+4IOqyveuhnOyXkCDrqqjrk6Ag7YyM7J287J20IOyhtOyerO2VqeuLiOuLpC5cIixcbiAgXCJzb25hbXUuZXJyb3IuYWxsRmlsZXNHZW5lcmF0ZWRcIjogXCLsnbTrr7gg66qo65OgIO2MjOydvOydtCDsg53shLHrkJwg7IOB7YOc7J6F64uI64ukLlwiLFxuICBcInNvbmFtdS5lcnJvci5maXh0dXJlUmVjb3JkUmVxdWlyZWRcIjogXCLtlL3siqTss5Ag66CI7L2U65Oc6rCAIOyXhuyKteuLiOuLpC4g7ZS97Iqk7LOQIOyhsO2ajCDtm4Qg7Iuc64+E7ZWY7IS47JqULlwiLFxuICBcInNvbmFtdS5lcnJvci5wcmVzZXRPckFic1BhdGhSZXF1aXJlZFwiOiBcInByZXNldCBvciBhYnNQYXRoIG11c3QgYmUgcHJvdmlkZWRcIixcbiAgXCJzb25hbXUuZXJyb3IuZW50aXR5SWRzUmVxdWlyZWRcIjogXCJlbnRpdHlJZHMgbXVzdCBiZSBwcm92aWRlZFwiLFxuICBcInNvbmFtdS5lcnJvci50ZW1wbGF0ZUtleXNSZXF1aXJlZFwiOiBcInRlbXBsYXRlS2V5cyBtdXN0IGJlIHByb3ZpZGVkXCIsXG4gIFwic29uYW11LmVycm9yLmVudW1JZHNSZXF1aXJlZFwiOiBcImVudW1JZHMgbXVzdCBiZSBwcm92aWRlZFwiLFxuICBcInNvbmFtdS5lcnJvci5vcHRpb25zUmVxdWlyZWRcIjogXCJvcHRpb25zIG11c3QgYmUgcHJvdmlkZWRcIixcbiAgXCJzb25hbXUuZXJyb3IuZmlsZU5vdFVwbG9hZGVkXCI6IFwi7YyM7J287J20IOyXheuhnOuTnOuQmOyngCDslYrslZjsirXri4jri6RcIixcbiAgXCJzb25hbXUuZXJyb3IuaGVhZGVyUm93Tm90Rm91bmRcIjpcbiAgICBcIu2XpOuNlCDtlonsnYQg7LC+7J2EIOyImCDsl4bsirXri4jri6QuIOyyqyDrsojsp7gg7Lus65+87J20ICdrZXkn7J24IO2WieydtCDtlYTsmpTtlanri4jri6QuXCIsXG4gIFwic29uYW11LmVycm9yLmtleVJlcXVpcmVkXCI6IFwi7YKk66W8IOyeheugpe2VtOyjvOyEuOyalFwiLFxuICBcInNvbmFtdS5lcnJvci5rZXlBbHJlYWR5RXhpc3RzXCI6IChrZXk6IHN0cmluZykgPT4gYOydtOuvuCDsobTsnqztlZjripQg7YKk7J6F64uI64ukOiAke2tleX1gLFxuICBcInNvbmFtdS5lcnJvci5rZXlOb3RGb3VuZFwiOiAoa2V5OiBzdHJpbmcpID0+IGDtgqTrpbwg7LC+7J2EIOyImCDsl4bsirXri4jri6Q6ICR7a2V5fWAsXG4gIFwic29uYW11LmVycm9yLm1pZ3JhdGlvblJlamVjdGVkXCI6IFwi66eI7J206re466CI7J207IWY7J20IOqxsOygiOuQmOyXiOyKteuLiOuLpFwiLFxuICBcInNvbmFtdS5lcnJvci5zbGFja0NvbmZpcm1Ob3RDb25maWd1cmVkXCI6IFwiU2xhY2sgQ29uZmlybeydtCDshKTsoJXrkJjsp4Ag7JWK7JWY7Iq164uI64ukXCIsXG4gIFwic29uYW11LmVycm9yLnNsYWNrQ29uZmlybUludmFsaWRUYXJnZXRzXCI6ICh0YXJnZXRzOiBzdHJpbmcsIHZhbGlkVGFyZ2V0czogc3RyaW5nKSA9PlxuICAgIGBTbGFjayBDb25maXJtIHRhcmdldHPsl5Ag7JWMIOyImCDsl4bripQgREIg7YKk6rCAIO2PrO2VqOuQmOyWtCDsnojsirXri4jri6Q6ICR7dGFyZ2V0c30uIOycoO2aqO2VnCDrjIDsg4E6ICR7dmFsaWRUYXJnZXRzfWAsXG4gIFwic29uYW11LmVycm9yLmRldlJ1bm5lci5ub3RFbmFibGVkXCI6XG4gICAgXCJkZXZSdW5uZXLqsIAg7Zmc7ISx7ZmU65CY7KeAIOyViuyVmOyKteuLiOuLpC4gc29uYW11LmNvbmZpZy50c+
|
|
72
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia28uanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RpY3Qva28udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmNLZXlzS28gfSBmcm9tIFwiLi9yYy1rZXlzXCI7XG5cbi8qKlxuICogU29uYW11IOuCtOyepSDtlZzqta3slrQgRGljdGlvbmFyeVxuICog7ZSE66Gc7KCd7Yq47JeQ7IScIOuPmeydvO2VnCDtgqTrpbwg7KCV7J2Y7ZWY66m0IOuNruyWtOyUgeuLiOuLpC5cbiAqL1xuZXhwb3J0IGRlZmF1bHQge1xuICAvLyByZWFjdC1jb21wb25lbnRzIGkxOG4ga2V5c1xuICAuLi5yY0tleXNLbyxcblxuICAvLyDsl5Drn6wg66mU7Iuc7KeAXG4gIFwiZXJyb3IuYmFkUmVxdWVzdFwiOiBcIuyemOuqu+uQnCDsmpTssq3snoXri4jri6RcIixcbiAgXCJlcnJvci51bmF1dGhvcml6ZWRcIjogXCLsnbjspp3snbQg7ZWE7JqU7ZWp64uI64ukXCIsXG4gIFwiZXJyb3IuZm9yYmlkZGVuXCI6IFwi6raM7ZWc7J20IOyXhuyKteuLiOuLpFwiLFxuICBcImVycm9yLm5vdEZvdW5kXCI6IFwi7LC+7J2EIOyImCDsl4bsirXri4jri6RcIixcbiAgXCJlcnJvci5zZXJ2aWNlVW5hdmFpbGFibGVcIjogXCLshJzruYTsiqTrpbwg7IKs7Jqp7ZWgIOyImCDsl4bsirXri4jri6RcIixcbiAgXCJlcnJvci5pbnRlcm5hbFNlcnZlckVycm9yXCI6IFwi7ISc67KEIOyYpOulmOqwgCDrsJzsg53tlojsirXri4jri6RcIixcbiAgXCJlcnJvci5hbHJlYWR5UHJvY2Vzc2VkXCI6IFwi7J2066+4IOyymOumrOuQmOyXiOyKteuLiOuLpFwiLFxuICBcImVycm9yLmR1cGxpY2F0ZVJvd1wiOiBcIuykkeuzteuQnCDrjbDsnbTthLDsnoXri4jri6RcIixcbiAgXCJlcnJvci50YXJnZXROb3RGb3VuZFwiOiBcIuuMgOyDgeydhCDssL7snYQg7IiYIOyXhuyKteuLiOuLpFwiLFxuICBcImVycm9yLmFwaS5ub3RGb3VuZFwiOiBcIuyhtOyerO2VmOyngCDslYrripQgQVBJ7J6F64uI64ukXCIsXG5cbiAgLy8g6rO17Ya1IFVJXG4gIFwiY29tbW9uLnNhdmVcIjogXCLsoIDsnqVcIixcbiAgXCJjb21tb24uY2FuY2VsXCI6IFwi7Leo7IaMXCIsXG4gIFwiY29tbW9uLmRlbGV0ZVwiOiBcIuyCreygnFwiLFxuICBcImNvbW1vbi5lZGl0XCI6IFwi7IiY7KCVXCIsXG4gIFwiY29tbW9uLmNyZWF0ZVwiOiBcIuyDneyEsVwiLFxuICBcImNvbW1vbi5zZWFyY2hcIjogXCLqsoDsg4lcIixcbiAgXCJjb21tb24uc2VhcmNoUGxhY2Vob2xkZXJcIjogXCLqsoDsg4kuLi5cIixcbiAgXCJjb21tb24uYWxsXCI6IFwi7KCE7LK0XCIsXG4gIFwiY29tbW9uLmNvbmZpcm1cIjogXCLtmZXsnbhcIixcbiAgXCJjb21tb24uY2xvc2VcIjogXCLri6vquLBcIixcbiAgXCJjb21tb24uYmFja1RvTGlzdFwiOiBcIuuqqeuhneycvOuhnFwiLFxuXG4gIC8vIO2PvFxuICBcImZvcm0uY3JlYXRlZEF0XCI6IFwi7IOd7ISx7J287IucXCIsXG5cbiAgLy8g7ZmV7J24IOuplOyLnOyngFxuICBcImNvbmZpcm0uZGVsZXRlXCI6IFwi7KCV66eQIOyCreygnO2VmOyLnOqyoOyKteuLiOq5jD9cIixcbiAgXCJjb25maXJtLnNhdmVcIjogXCLsoIDsnqXtlZjsi5zqsqDsirXri4jquYw/XCIsXG5cbiAgLy8g6rKA7KadIOuplOyLnOyngCAo7YWc7ZSM66a/IO2VqOyImClcbiAgXCJ2YWxpZGF0aW9uLnJlcXVpcmVkXCI6IChmaWVsZDogc3RyaW5nKSA9PiBgJHtmaWVsZH3snYAo64qUKSDtlYTsiJjsnoXri4jri6RgLFxuICBcInZhbGlkYXRpb24ubWluTGVuZ3RoXCI6IChmaWVsZDogc3RyaW5nLCBtaW46IG51bWJlcikgPT5cbiAgICBgJHtmaWVsZH3snYAo64qUKSDstZzshowgJHttaW597J6QIOydtOyDgeydtOyWtOyVvCDtlanri4jri6RgLFxuICBcInZhbGlkYXRpb24ubWF4TGVuZ3RoXCI6IChmaWVsZDogc3RyaW5nLCBtYXg6IG51bWJlcikgPT5cbiAgICBgJHtmaWVsZH3snYAo64qUKSDstZzrjIAgJHttYXh97J6Q6rmM7KeAIOyeheugpe2VoCDsiJgg7J6I7Iq164uI64ukYCxcbiAgXCJ2YWxpZGF0aW9uLnJhbmdlXCI6IChmaWVsZDogc3RyaW5nLCBtaW46IG51bWJlciwgbWF4OiBudW1iZXIpID0+XG4gICAgYCR7ZmllbGR97J2AKOuKlCkgJHttaW59fiR7bWF4fSDsgqzsnbTsl6zslbwg7ZWp64uI64ukYCxcbiAgXCJ2YWxpZGF0aW9uLmVtYWlsXCI6IFwi7Jis67CU66W4IOydtOuplOydvCDtmJXsi53snbQg7JWE64uZ64uI64ukXCIsXG4gIFwidmFsaWRhdGlvbi51cmxcIjogXCLsmKzrsJTrpbggVVJMIO2YleyLneydtCDslYTri5nri4jri6RcIixcblxuICAvLyBFbnRpdHkg7Y6Y7J207KeAICjthZztlIzrpr8g7ZWo7IiYKVxuICBcImVudGl0eS5saXN0XCI6IChuYW1lOiBzdHJpbmcpID0+IGAke25hbWV9IOuqqeuhnWAsXG4gIFwiZW50aXR5Lmxpc3RNYW5hZ2VcIjogKG5hbWU6IHN0cmluZykgPT4gYCR7bmFtZX0g66qp66GdIOq0gOumrGAsXG4gIFwiZW50aXR5LmNyZWF0ZVwiOiAobmFtZTogc3RyaW5nKSA9PiBgJHtuYW1lfSDsg53shLFgLFxuICBcImVudGl0eS5lZGl0XCI6IChuYW1lOiBzdHJpbmcsIGlkOiBudW1iZXIgfCBzdHJpbmcpID0+IGAke25hbWV9IOyImOyglSAoIyR7aWR9KWAsXG5cbiAgLy8g7JeQ65+sIOuplOyLnOyngCAo7YWc7ZSM66a/IO2VqOyImClcbiAgXCJlcnJvci5lbnRpdHlOb3RGb3VuZFwiOiAobmFtZTogc3RyaW5nLCBpZDogbnVtYmVyIHwgc3RyaW5nKSA9PiBg7KG07J6s7ZWY7KeAIOyViuuKlCAke25hbWV9IElEICR7aWR9YCxcbiAgXCJlcnJvci51bmtub3duU2VhcmNoRmllbGRcIjogKGZpZWxkOiBzdHJpbmcpID0+IGDqtaztmITrkJjsp4Ag7JWK7J2AIOqygOyDiSDtlYTrk5wgJHtmaWVsZH1gLFxuXG4gIC8vIFNvbmFtdSDrgrTrtoAg7JeQ65+sIOuplOyLnOyngFxuICBcInNvbmFtdS5lcnJvci5lbnRpdHlJZENhbWVsQ2FzZVwiOiBcImVudGl0eUlk64qUIENhbWVsQ2FzZSDtmJXsi53snbTslrTslbwg7ZWp64uI64ukLlwiLFxuICBcInNvbmFtdS5lcnJvci5zdWJzZXROb3RGb3VuZFwiOiAoc3Vic2V0OiBzdHJpbmcpID0+IGBTdWJzZXQgJHtzdWJzZXR9IOqwgCDsl4bsirXri4jri6QuYCxcbiAgXCJzb25hbXUuZXJyb3Iuc2hhZG93RGJUZXN0RmFpbGVkXCI6IFwiU2hhZG93IERCIO2FjOyKpO2KuCDsp4Ttlokg7KSRIOyXkOufrFwiLFxuICBcInNvbmFtdS5lcnJvci5hbGxGaWxlc0V4aXN0XCI6IFwi7J2066+4IOqyveuhnOyXkCDrqqjrk6Ag7YyM7J287J20IOyhtOyerO2VqeuLiOuLpC5cIixcbiAgXCJzb25hbXUuZXJyb3IuYWxsRmlsZXNHZW5lcmF0ZWRcIjogXCLsnbTrr7gg66qo65OgIO2MjOydvOydtCDsg53shLHrkJwg7IOB7YOc7J6F64uI64ukLlwiLFxuICBcInNvbmFtdS5lcnJvci5maXh0dXJlUmVjb3JkUmVxdWlyZWRcIjogXCLtlL3siqTss5Ag66CI7L2U65Oc6rCAIOyXhuyKteuLiOuLpC4g7ZS97Iqk7LOQIOyhsO2ajCDtm4Qg7Iuc64+E7ZWY7IS47JqULlwiLFxuICBcInNvbmFtdS5lcnJvci5wcmVzZXRPckFic1BhdGhSZXF1aXJlZFwiOiBcInByZXNldCBvciBhYnNQYXRoIG11c3QgYmUgcHJvdmlkZWRcIixcbiAgXCJzb25hbXUuZXJyb3IuZW50aXR5SWRzUmVxdWlyZWRcIjogXCJlbnRpdHlJZHMgbXVzdCBiZSBwcm92aWRlZFwiLFxuICBcInNvbmFtdS5lcnJvci50ZW1wbGF0ZUtleXNSZXF1aXJlZFwiOiBcInRlbXBsYXRlS2V5cyBtdXN0IGJlIHByb3ZpZGVkXCIsXG4gIFwic29uYW11LmVycm9yLmVudW1JZHNSZXF1aXJlZFwiOiBcImVudW1JZHMgbXVzdCBiZSBwcm92aWRlZFwiLFxuICBcInNvbmFtdS5lcnJvci5vcHRpb25zUmVxdWlyZWRcIjogXCJvcHRpb25zIG11c3QgYmUgcHJvdmlkZWRcIixcbiAgXCJzb25hbXUuZXJyb3IuZmlsZU5vdFVwbG9hZGVkXCI6IFwi7YyM7J287J20IOyXheuhnOuTnOuQmOyngCDslYrslZjsirXri4jri6RcIixcbiAgXCJzb25hbXUuZXJyb3IuaGVhZGVyUm93Tm90Rm91bmRcIjpcbiAgICBcIu2XpOuNlCDtlonsnYQg7LC+7J2EIOyImCDsl4bsirXri4jri6QuIOyyqyDrsojsp7gg7Lus65+87J20ICdrZXkn7J24IO2WieydtCDtlYTsmpTtlanri4jri6QuXCIsXG4gIFwic29uYW11LmVycm9yLmtleVJlcXVpcmVkXCI6IFwi7YKk66W8IOyeheugpe2VtOyjvOyEuOyalFwiLFxuICBcInNvbmFtdS5lcnJvci5rZXlBbHJlYWR5RXhpc3RzXCI6IChrZXk6IHN0cmluZykgPT4gYOydtOuvuCDsobTsnqztlZjripQg7YKk7J6F64uI64ukOiAke2tleX1gLFxuICBcInNvbmFtdS5lcnJvci5rZXlOb3RGb3VuZFwiOiAoa2V5OiBzdHJpbmcpID0+IGDtgqTrpbwg7LC+7J2EIOyImCDsl4bsirXri4jri6Q6ICR7a2V5fWAsXG4gIFwic29uYW11LmVycm9yLm1pZ3JhdGlvblJlamVjdGVkXCI6IFwi66eI7J206re466CI7J207IWY7J20IOqxsOygiOuQmOyXiOyKteuLiOuLpFwiLFxuICBcInNvbmFtdS5lcnJvci5zbGFja0NvbmZpcm1Ob3RDb25maWd1cmVkXCI6IFwiU2xhY2sgQ29uZmlybeydtCDshKTsoJXrkJjsp4Ag7JWK7JWY7Iq164uI64ukXCIsXG4gIFwic29uYW11LmVycm9yLnNsYWNrQ29uZmlybUludmFsaWRUYXJnZXRzXCI6ICh0YXJnZXRzOiBzdHJpbmcsIHZhbGlkVGFyZ2V0czogc3RyaW5nKSA9PlxuICAgIGBTbGFjayBDb25maXJtIHRhcmdldHPsl5Ag7JWMIOyImCDsl4bripQgREIg7YKk6rCAIO2PrO2VqOuQmOyWtCDsnojsirXri4jri6Q6ICR7dGFyZ2V0c30uIOycoO2aqO2VnCDrjIDsg4E6ICR7dmFsaWRUYXJnZXRzfWAsXG4gIFwic29uYW11LmVycm9yLmRldlJ1bm5lci5ub3RFbmFibGVkXCI6XG4gICAgXCJkZXZSdW5uZXLqsIAg7Zmc7ISx7ZmU65CY7KeAIOyViuyVmOyKteuLiOuLpC4gc29uYW11LmNvbmZpZy50c+yXkOyEnCB0ZXN0LmRldlJ1bm5lci5lbmFibGVkOiB0cnVlIOyEpOygleydtCDtlYTsmpTtlanri4jri6RcIixcbiAgXCJzb25hbXUuZXJyb3IuZGV2UnVubmVyLm5vdFJlYWR5XCI6IFwiVml0ZXN0IOyduOyKpO2EtOyKpOqwgCDslYTsp4Eg7KSA67mE65CY7KeAIOyViuyVmOyKteuLiOuLpFwiLFxuICBcInNvbmFtdS5lcnJvci5kZXZSdW5uZXIuc2VydmVyVW5yZWFjaGFibGVcIjpcbiAgICBcImRldiDshJzrsoTsl5Ag7Jew6rKw7ZWgIOyImCDsl4bsirXri4jri6QuIHNvbmFtdSBkZXbqsIAg7Iuk7ZaJIOykkeyduOyngCDtmZXsnbjtlZjshLjsmpRcIixcbn0gYXMgY29uc3Q7XG4iXSwibWFwcGluZ3MiOiI7Ozs7O0NBQW9DLGFBQUE7Q0FNckIsYUFBQTtFQUViLEdBQUc7RUFHSCxvQkFBb0I7RUFDcEIsc0JBQXNCO0VBQ3RCLG1CQUFtQjtFQUNuQixrQkFBa0I7RUFDbEIsNEJBQTRCO0VBQzVCLDZCQUE2QjtFQUM3QiwwQkFBMEI7RUFDMUIsc0JBQXNCO0VBQ3RCLHdCQUF3QjtFQUN4QixzQkFBc0I7RUFHdEIsZUFBZTtFQUNmLGlCQUFpQjtFQUNqQixpQkFBaUI7RUFDakIsZUFBZTtFQUNmLGlCQUFpQjtFQUNqQixpQkFBaUI7RUFDakIsNEJBQTRCO0VBQzVCLGNBQWM7RUFDZCxrQkFBa0I7RUFDbEIsZ0JBQWdCO0VBQ2hCLHFCQUFxQjtFQUdyQixrQkFBa0I7RUFHbEIsa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUdoQix3QkFBd0IsVUFBa0IsR0FBRyxNQUFNO0VBQ25ELHlCQUF5QixPQUFlLFFBQ3RDLEdBQUcsTUFBTSxVQUFVLElBQUk7RUFDekIseUJBQXlCLE9BQWUsUUFDdEMsR0FBRyxNQUFNLFVBQVUsSUFBSTtFQUN6QixxQkFBcUIsT0FBZSxLQUFhLFFBQy9DLEdBQUcsTUFBTSxPQUFPLElBQUksR0FBRyxJQUFJO0VBQzdCLG9CQUFvQjtFQUNwQixrQkFBa0I7RUFHbEIsZ0JBQWdCLFNBQWlCLEdBQUcsS0FBSztFQUN6QyxzQkFBc0IsU0FBaUIsR0FBRyxLQUFLO0VBQy9DLGtCQUFrQixTQUFpQixHQUFHLEtBQUs7RUFDM0MsZ0JBQWdCLE1BQWMsT0FBd0IsR0FBRyxLQUFLLFFBQVEsR0FBRztFQUd6RSx5QkFBeUIsTUFBYyxPQUF3QixXQUFXLEtBQUssTUFBTTtFQUNyRiw2QkFBNkIsVUFBa0IsaUJBQWlCO0VBR2hFLGtDQUFrQztFQUNsQyxnQ0FBZ0MsV0FBbUIsVUFBVSxPQUFPO0VBQ3BFLG1DQUFtQztFQUNuQyw4QkFBOEI7RUFDOUIsa0NBQWtDO0VBQ2xDLHNDQUFzQztFQUN0Qyx3Q0FBd0M7RUFDeEMsa0NBQWtDO0VBQ2xDLHFDQUFxQztFQUNyQyxnQ0FBZ0M7RUFDaEMsZ0NBQWdDO0VBQ2hDLGdDQUFnQztFQUNoQyxrQ0FDRTtFQUNGLDRCQUE0QjtFQUM1QixrQ0FBa0MsUUFBZ0IsaUJBQWlCO0VBQ25FLDZCQUE2QixRQUFnQixpQkFBaUI7RUFDOUQsa0NBQWtDO0VBQ2xDLDBDQUEwQztFQUMxQyw0Q0FBNEMsU0FBaUIsaUJBQzNELGtEQUFrRCxRQUFRLFlBQVk7RUFDeEUscUNBQ0U7RUFDRixtQ0FBbUM7RUFDbkMsNENBQ0U7Q0FDSiJ9
|
package/dist/dict/rc-keys.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __esmMin } from "../_virtual/_rolldown/runtime.js";
|
|
2
|
-
|
|
2
|
+
// src/dict/rc-keys.ts
|
|
3
3
|
var rcKeysKo, rcKeysEn;
|
|
4
4
|
var init_rc_keys = __esmMin((() => {
|
|
5
5
|
rcKeysKo = {
|
|
@@ -143,7 +143,6 @@ var init_rc_keys = __esmMin((() => {
|
|
|
143
143
|
"rc.common.save": "Save"
|
|
144
144
|
};
|
|
145
145
|
}));
|
|
146
|
-
//#endregion
|
|
147
146
|
init_rc_keys();
|
|
148
147
|
export { init_rc_keys, rcKeysEn, rcKeysKo };
|
|
149
148
|
|
package/dist/dict/sd.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { __esmMin } from "../_virtual/_rolldown/runtime.js";
|
|
2
2
|
import en_default, { init_en } from "./en.js";
|
|
3
3
|
import ko_default, { init_ko } from "./ko.js";
|
|
4
|
-
|
|
4
|
+
// src/dict/sd.ts
|
|
5
5
|
function getCurrentI18nConfig() {
|
|
6
6
|
if (currentI18nConfig === null) throw new Error("Sonamu i18n config has not been initialized");
|
|
7
7
|
return currentI18nConfig;
|
|
@@ -41,8 +41,7 @@ var init_sd = __esmMin((() => {
|
|
|
41
41
|
};
|
|
42
42
|
currentI18nConfig = null;
|
|
43
43
|
}));
|
|
44
|
-
//#endregion
|
|
45
44
|
init_sd();
|
|
46
45
|
export { SD, init_sd, setSDConfig };
|
|
47
46
|
|
|
48
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2QuanMiLCJuYW1lcyI6WyJtaXNzaW5nVmFsdWUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvZGljdC9zZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFNvbmFtdSDrgrTrtoDsmqkgU0QgKFNvbmFtdSBEaWN0aW9uYXJ5KSDtlajsiJhcbiAqIHNvbmFtdSDsvZTslrQg64K067aA7JeQ7IScIOyCrOyaqe2VmOuKlCBpMThuIO2VqOyImOyeheuLiOuLpC5cbiAqL1xuXG5pbXBvcnQgeyB0eXBlIFNvbmFtdUNvbmZpZyB9IGZyb20gXCIuLi9hcGkvY29uZmlnXCI7XG5pbXBvcnQgZW4gZnJvbSBcIi4vZW5cIjtcbmltcG9ydCBrbyBmcm9tIFwiLi9rb1wiO1xuaW1wb3J0IHsgdHlwZSBMb2NhbGl6ZWRTdHJpbmcgfSBmcm9tIFwiLi90eXBlc1wiO1xuXG50eXBlIFNvbmFtdURpY3QgPSB0eXBlb2Yga287XG50eXBlIERpY3RLZXkgPSBrZXlvZiBTb25hbXVEaWN0O1xuXG50eXBlIE1lcmdlZERpY3Rpb25hcnkgPSB7XG4gIFtLIGluIGtleW9mIFNvbmFtdURpY3RdOiBTb25hbXVEaWN0W0tdIGV4dGVuZHMgKC4uLmFyZ3M6IGluZmVyIFApID0+IHN0cmluZ1xuICAgID8gKC4uLmFyZ3M6IFApID0+IHN0cmluZ1xuICAgIDogc3RyaW5nO1xufTtcbmludGVyZmFjZSBEaWN0aW9uYXJpZXNCeUxvY2FsZSB7XG4gIFtsb2NhbGU6IHN0cmluZ106IE1lcmdlZERpY3Rpb25hcnk7XG59XG5jb25zdCBkaWN0aW9uYXJpZXM6IERpY3Rpb25hcmllc0J5TG9jYWxlID0ge1xuICBrbyxcbiAgZW4sXG59O1xubGV0IGN1cnJlbnRJMThuQ29uZmlnOiBTb25hbXVDb25maWdbXCJpMThuXCJdIHwgbnVsbCA9IG51bGw7XG5cbnR5cGUgU0RSZXR1cm5UeXBlPEsgZXh0ZW5kcyBEaWN0S2V5PiA9IFNvbmFtdURpY3RbS10gZXh0ZW5kcyAoLi4uYXJnczogaW5mZXIgUCkgPT4gc3RyaW5nXG4gID8gKC4uLmFyZ3M6IFApID0+IExvY2FsaXplZFN0cmluZ1xuICA6IExvY2FsaXplZFN0cmluZztcblxuZnVuY3Rpb24gZ2V0Q3VycmVudEkxOG5Db25maWcoKTogU29uYW11Q29uZmlnW1wiaTE4blwiXSB7XG4gIGlmIChjdXJyZW50STE4bkNvbmZpZyA9PT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIlNvbmFtdSBpMThuIGNvbmZpZyBoYXMgbm90IGJlZW4gaW5pdGlhbGl6ZWRcIik7XG4gIH1cblxuICByZXR1cm4gY3VycmVudEkxOG5Db25maWc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRTRENvbmZpZyhpMThuQ29uZmlnOiBTb25hbXVDb25maWdbXCJpMThuXCJdKTogdm9pZCB7XG4gIGN1cnJlbnRJMThuQ29uZmlnID0gaTE4bkNvbmZpZztcbn1cblxuZnVuY3Rpb24gZ2V0RGljdFZhbHVlPEsgZXh0ZW5kcyBEaWN0S2V5PihrZXk6IEssIGxvY2FsZTogc3RyaW5nKTogU0RSZXR1cm5UeXBlPEs+IHtcbiAgY29uc3QgeyBkZWZhdWx0TG9jYWxlLCBzdXBwb3J0ZWRMb2NhbGVzIH0gPSBnZXRDdXJyZW50STE4bkNvbmZpZygpO1xuXG4gIC8vIDEuIOyngOygleuQnCBsb2NhbGXsl5DshJwg7KGw7ZqMXG4gIGNvbnN0IGRpY3QgPSBkaWN0aW9uYXJpZXNbbG9jYWxlXTtcbiAgaWYgKGRpY3Q/LltrZXldICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gLyogU0FGRVRZOiDrj5nquLDtmZTrkJwg7IKs7KCEIOqzhOyVveyXkOyEnCDrrLjsnpDsl7Qg67iM656c65Oc66eMIOy2lOqwgO2VnOuLpC4gKi8gZGljdFtcbiAgICAgIGtleVxuICAgIF0gYXMgU0RSZXR1cm5UeXBlPEs+O1xuICB9XG5cbiAgLy8gMi4gZGVmYXVsdCBsb2NhbGXsl5DshJwg7KGw7ZqMXG4gIGlmIChsb2NhbGUgIT09IGRlZmF1bHRMb2NhbGUgJiYgZGljdGlvbmFyaWVzW2RlZmF1bHRMb2NhbGVdPy5ba2V5XSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIC8qIFNBRkVUWTog64+Z6riw7ZmU65CcIOyCrOyghCDqs4Tslb3sl5DshJwg66y47J6Q7Je0IOu4jOuenOuTnOunjCDstpTqsIDtlZzri6QuICovIGRpY3Rpb25hcmllc1tcbiAgICAgIGRlZmF1bHRMb2NhbGVcbiAgICBdW2tleV0gYXMgU0RSZXR1cm5UeXBlPEs+O1xuICB9XG5cbiAgLy8gMy4gc3VwcG9ydGVkIGxvY2FsZXMg7Iic7ZqMXG4gIGZvciAoY29uc3Qgc3VwcG9ydGVkTG9jYWxlIG9mIHN1cHBvcnRlZExvY2FsZXMpIHtcbiAgICBpZiAoc3VwcG9ydGVkTG9jYWxlICE9PSBsb2NhbGUgJiYgc3VwcG9ydGVkTG9jYWxlICE9PSBkZWZhdWx0TG9jYWxlKSB7XG4gICAgICBpZiAoZGljdGlvbmFyaWVzW3N1cHBvcnRlZExvY2FsZV0/LltrZXldICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIC8qIFNBRkVUWTog64+Z6riw7ZmU65CcIOyCrOyghCDqs4Tslb3sl5DshJwg66y47J6Q7Je0IOu4jOuenOuTnOunjCDstpTqsIDtlZzri6QuICovIGRpY3Rpb25hcmllc1tcbiAgICAgICAgICBzdXBwb3J0ZWRMb2NhbGVcbiAgICAgICAgXVtrZXldIGFzIFNEUmV0dXJuVHlwZTxLPjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyA0LiDrqqjrkZAg7Iuk7YyoIOyLnCBrZXkg67CY7ZmYXG4gIGNvbnN0IG1pc3NpbmdWYWx1ZTogTWVyZ2VkRGljdGlvbmFyeVtEaWN0S2V5XSA9IGtleTtcbiAgcmV0dXJuIC8qIFNBRkVUWTog64iE6529IO2CpCDrrLjsnpDsl7Tsl5AgTG9jYWxpemVkU3RyaW5nIOu4jOuenOuTnOunjCDstpTqsIDtlZzri6QuICovIG1pc3NpbmdWYWx1ZSBhcyBTRFJldHVyblR5cGU8Sz47XG59XG5cbi8qKlxuICogU29uYW11IOuCtOu2gOyaqSBTRCDtlajsiJhcbiAqIHNvbmFtdSDsvZTslrQg64K067aA7JeQ7ISc66eMIOyCrOyaqe2VqeuLiOuLpC5cbiAqXG4gKiBAZXhhbXBsZVxuICogU0QoXCJlcnJvci5ub3RGb3VuZFwiKSAgLy8g4oaSIFwi7LC+7J2EIOyImCDsl4bsirXri4jri6RcIiDrmJDripQgXCJOb3QgZm91bmRcIiAoTG9jYWxpemVkU3RyaW5nKVxuICogU0QoXCJlcnJvci5lbnRpdHlOb3RGb3VuZFwiKShcIlVzZXJcIiwgMSkgIC8vIOKGkiBcIuyhtOyerO2VmOyngCDslYrripQgVXNlciBJRCAxXCIgKExvY2FsaXplZFN0cmluZylcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFNEPEsgZXh0ZW5kcyBEaWN0S2V5PihrZXk6IEspOiBTRFJldHVyblR5cGU8Sz4ge1xuICBjb25zdCBjb25maWdMb2NhbGUgPSBnZXRDdXJyZW50STE4bkNvbmZpZygpLmRlZmF1bHRMb2NhbGU7XG4gIHJldHVybiBnZXREaWN0VmFsdWUoa2V5LCBjb25maWdMb2NhbGUpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7O0FBK0JBLFNBQVMsdUJBQTZDO0NBQ3BELElBQUksc0JBQXNCLE1BQ3hCLE1BQU0sSUFBSSxNQUFNLDZDQUE2QztDQUcvRCxPQUFPO0FBQ1Q7QUFFQSxTQUFnQixZQUFZLFlBQXdDO0NBQ2xFLG9CQUFvQjtBQUN0QjtBQUVBLFNBQVMsYUFBZ0MsS0FBUSxRQUFpQztDQUNoRixNQUFNLEVBQUUsZUFBZSxxQkFBcUIscUJBQXFCO0NBR2pFLE1BQU0sT0FBTyxhQUFhO0NBQzFCLElBQUksT0FBTyxTQUFTLFFBQ2xCLE9BQWlELEtBQy9DO0NBS0osSUFBSSxXQUFXLGlCQUFpQixhQUFhLGNBQWMsR0FBRyxTQUFTLFFBQ3JFLE9BQWlELGFBQy9DLGNBQ0QsQ0FBQztDQUlKLEtBQUssTUFBTSxtQkFBbUIsa0JBQzVCLElBQUksb0JBQW9CLFVBQVUsb0JBQW9CLGVBQ3BEO01BQUksYUFBYSxnQkFBZ0IsR0FBRyxTQUFTLFFBQzNDLE9BQWlELGFBQy9DLGdCQUNELENBQUM7Q0FDSjtDQU1KLE9BQTBEQTtBQUM1RDs7Ozs7Ozs7O0FBVUEsU0FBZ0IsR0FBc0IsS0FBeUI7Q0FDN0QsTUFBTSxlQUFlLHFCQUFxQixDQUFDLENBQUM7Q0FDNUMsT0FBTyxhQUFhLEtBQUssWUFBWTtBQUN2Qzs7O0NBbEZxQixRQUFBO0NBQ0EsUUFBQTtDQWNmLGVBQXFDO0VBQ3pDLElBQUE7RUFDQSxJQUFBO0NBQ0Y7Q0FDSSxvQkFBaUQifQ==
|