@decaf-ts/integrations 0.3.4 → 0.3.5
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/integrations.cjs +3 -3
- package/dist/integrations.js +3 -3
- package/lib/cjs/graph/execution/CodeSandboxEvaluator.cjs +4 -0
- package/lib/cjs/graph/execution/GraphExecutionEngine.cjs +3 -2
- package/lib/cjs/graph/execution/SwitchGraphNodeExecutor.cjs +95 -0
- package/lib/cjs/graph/execution/index.cjs +4 -2
- package/lib/cjs/graph/index.cjs +7 -2
- package/lib/cjs/graph/loops/ConditionExpressionEvaluator.cjs +87 -0
- package/lib/cjs/graph/loops/GraphConditionEvaluator.cjs +25 -3
- package/lib/cjs/graph/loops/index.cjs +3 -2
- package/lib/cjs/graph/nodes/agent.cjs +110 -0
- package/lib/cjs/graph/nodes/category-styles.cjs +38 -0
- package/lib/cjs/graph/nodes/flow-control.cjs +436 -0
- package/lib/cjs/graph/nodes/index.cjs +34 -0
- package/lib/cjs/graph/nodes/triggers.cjs +250 -0
- package/lib/cjs/graph/types.cjs +2 -2
- package/lib/cjs/index.cjs +3 -3
- package/lib/cjs/keycloak/services/KeycloakAuthService.cjs +5 -4
- package/lib/cjs/keycloak/services/KeycloakClientService.cjs +5 -4
- package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs +5 -4
- package/lib/cjs/keycloak/services/KeycloakRealmService.cjs +8 -7
- package/lib/cjs/keycloak/services/KeycloakRoleService.cjs +5 -4
- package/lib/cjs/keycloak/services/KeycloakService.cjs +5 -3
- package/lib/cjs/keycloak/services/KeycloakUserService.cjs +5 -4
- package/lib/cjs/keycloak/services/runtime.cjs +20 -0
- package/lib/cjs/kibana/services/KibanaAuthService.cjs +6 -5
- package/lib/cjs/kibana/services/KibanaDashboardService.cjs +9 -8
- package/lib/cjs/kibana/services/KibanaDataViewService.cjs +7 -6
- package/lib/cjs/kibana/services/KibanaRoleService.cjs +5 -4
- package/lib/cjs/kibana/services/KibanaService.cjs +4 -2
- package/lib/cjs/kibana/services/KibanaSpaceService.cjs +5 -4
- package/lib/cjs/kibana/services/KibanaUserService.cjs +5 -4
- package/lib/cjs/kibana/services/runtime.cjs +20 -0
- package/lib/esm/graph/execution/CodeSandboxEvaluator.js +18 -0
- package/lib/esm/graph/execution/GraphExecutionEngine.js +2 -1
- package/lib/esm/graph/execution/SwitchGraphNodeExecutor.js +90 -0
- package/lib/esm/graph/execution/index.js +3 -1
- package/lib/esm/graph/index.js +6 -1
- package/lib/esm/graph/loops/ConditionExpressionEvaluator.js +82 -0
- package/lib/esm/graph/loops/GraphConditionEvaluator.js +24 -2
- package/lib/esm/graph/loops/index.js +2 -1
- package/lib/esm/graph/nodes/agent.js +101 -0
- package/lib/esm/graph/nodes/category-styles.js +34 -0
- package/lib/esm/graph/nodes/flow-control.js +427 -0
- package/lib/esm/graph/nodes/index.js +17 -0
- package/lib/esm/graph/nodes/triggers.js +241 -0
- package/lib/esm/graph/types.js +1 -1
- package/lib/esm/index.js +3 -3
- package/lib/esm/keycloak/services/KeycloakAuthService.js +4 -3
- package/lib/esm/keycloak/services/KeycloakClientService.js +4 -3
- package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js +4 -3
- package/lib/esm/keycloak/services/KeycloakRealmService.js +4 -3
- package/lib/esm/keycloak/services/KeycloakRoleService.js +4 -3
- package/lib/esm/keycloak/services/KeycloakService.js +4 -2
- package/lib/esm/keycloak/services/KeycloakUserService.js +4 -3
- package/lib/esm/keycloak/services/runtime.js +15 -0
- package/lib/esm/kibana/services/KibanaAuthService.js +5 -4
- package/lib/esm/kibana/services/KibanaDashboardService.js +5 -4
- package/lib/esm/kibana/services/KibanaDataViewService.js +4 -3
- package/lib/esm/kibana/services/KibanaRoleService.js +4 -3
- package/lib/esm/kibana/services/KibanaService.js +3 -1
- package/lib/esm/kibana/services/KibanaSpaceService.js +4 -3
- package/lib/esm/kibana/services/KibanaUserService.js +4 -3
- package/lib/esm/kibana/services/runtime.js +15 -0
- package/lib/types/graph/execution/CodeSandboxEvaluator.d.cts +53 -0
- package/lib/types/graph/execution/CodeSandboxEvaluator.d.mts +53 -0
- package/lib/types/graph/execution/GraphExecutionEngine.d.cts +10 -0
- package/lib/types/graph/execution/GraphExecutionEngine.d.mts +10 -0
- package/lib/types/graph/execution/SwitchGraphNodeExecutor.d.cts +42 -0
- package/lib/types/graph/execution/SwitchGraphNodeExecutor.d.mts +42 -0
- package/lib/types/graph/execution/index.d.cts +2 -0
- package/lib/types/graph/execution/index.d.mts +2 -0
- package/lib/types/graph/index.d.cts +4 -0
- package/lib/types/graph/index.d.mts +4 -0
- package/lib/types/graph/loops/ConditionExpressionEvaluator.d.cts +36 -0
- package/lib/types/graph/loops/ConditionExpressionEvaluator.d.mts +36 -0
- package/lib/types/graph/loops/GraphConditionEvaluator.d.cts +20 -4
- package/lib/types/graph/loops/GraphConditionEvaluator.d.mts +20 -4
- package/lib/types/graph/loops/index.d.cts +1 -0
- package/lib/types/graph/loops/index.d.mts +1 -0
- package/lib/types/graph/nodes/agent.d.cts +44 -0
- package/lib/types/graph/nodes/agent.d.mts +44 -0
- package/lib/types/graph/nodes/category-styles.d.cts +8 -0
- package/lib/types/graph/nodes/category-styles.d.mts +8 -0
- package/lib/types/graph/nodes/flow-control.d.cts +104 -0
- package/lib/types/graph/nodes/flow-control.d.mts +104 -0
- package/lib/types/graph/nodes/index.d.cts +16 -0
- package/lib/types/graph/nodes/index.d.mts +16 -0
- package/lib/types/graph/nodes/triggers.d.cts +53 -0
- package/lib/types/graph/nodes/triggers.d.mts +53 -0
- package/lib/types/graph/types.d.cts +102 -0
- package/lib/types/graph/types.d.mts +102 -0
- package/lib/types/index.d.cts +2 -2
- package/lib/types/index.d.mts +2 -2
- package/lib/types/keycloak/services/runtime.d.cts +6 -0
- package/lib/types/keycloak/services/runtime.d.mts +6 -0
- package/lib/types/kibana/services/runtime.d.cts +6 -0
- package/lib/types/kibana/services/runtime.d.mts +6 -0
- package/package.json +1 -1
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setKeycloakProductionResolver = setKeycloakProductionResolver;
|
|
4
|
+
exports.resolveKeycloakIsProduction = resolveKeycloakIsProduction;
|
|
5
|
+
const db_decorators_1 = require("@decaf-ts/db-decorators");
|
|
6
|
+
let keycloakProductionResolver;
|
|
7
|
+
function setKeycloakProductionResolver(resolver) {
|
|
8
|
+
keycloakProductionResolver = resolver;
|
|
9
|
+
}
|
|
10
|
+
function resolveKeycloakIsProduction(config) {
|
|
11
|
+
if (typeof config?.isProduction === "function") {
|
|
12
|
+
return config.isProduction();
|
|
13
|
+
}
|
|
14
|
+
if (keycloakProductionResolver) {
|
|
15
|
+
return keycloakProductionResolver();
|
|
16
|
+
}
|
|
17
|
+
throw new db_decorators_1.InternalError("Keycloak production resolver not initialized");
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9rZXljbG9hay9zZXJ2aWNlcy9ydW50aW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUl4RCxJQUFJLDBCQUEwRCxDQUFDO0FBRS9ELE1BQU0sVUFBVSw2QkFBNkIsQ0FDM0MsUUFBNEI7SUFFNUIsMEJBQTBCLEdBQUcsUUFBUSxDQUFDO0FBQ3hDLENBQUM7QUFFRCxNQUFNLFVBQVUsMkJBQTJCLENBQ3pDLE1BQXlDO0lBRXpDLElBQUksT0FBTyxNQUFNLEVBQUUsWUFBWSxLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQy9DLE9BQU8sTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFDRCxJQUFJLDBCQUEwQixFQUFFLENBQUM7UUFDL0IsT0FBTywwQkFBMEIsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFDRCxNQUFNLElBQUksYUFBYSxDQUFDLDhDQUE4QyxDQUFDLENBQUM7QUFDMUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEludGVybmFsRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcblxudHlwZSBQcm9kdWN0aW9uUmVzb2x2ZXIgPSAoKSA9PiBib29sZWFuO1xuXG5sZXQga2V5Y2xvYWtQcm9kdWN0aW9uUmVzb2x2ZXI6IFByb2R1Y3Rpb25SZXNvbHZlciB8IHVuZGVmaW5lZDtcblxuZXhwb3J0IGZ1bmN0aW9uIHNldEtleWNsb2FrUHJvZHVjdGlvblJlc29sdmVyKFxuICByZXNvbHZlcjogUHJvZHVjdGlvblJlc29sdmVyXG4pOiB2b2lkIHtcbiAga2V5Y2xvYWtQcm9kdWN0aW9uUmVzb2x2ZXIgPSByZXNvbHZlcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVLZXljbG9ha0lzUHJvZHVjdGlvbihcbiAgY29uZmlnPzogeyBpc1Byb2R1Y3Rpb24/OiAoKSA9PiBib29sZWFuIH1cbik6IGJvb2xlYW4ge1xuICBpZiAodHlwZW9mIGNvbmZpZz8uaXNQcm9kdWN0aW9uID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICByZXR1cm4gY29uZmlnLmlzUHJvZHVjdGlvbigpO1xuICB9XG4gIGlmIChrZXljbG9ha1Byb2R1Y3Rpb25SZXNvbHZlcikge1xuICAgIHJldHVybiBrZXljbG9ha1Byb2R1Y3Rpb25SZXNvbHZlcigpO1xuICB9XG4gIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiS2V5Y2xvYWsgcHJvZHVjdGlvbiByZXNvbHZlciBub3QgaW5pdGlhbGl6ZWRcIik7XG59XG4iXX0=
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInJ1bnRpbWUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFFQSxzRUFFQztBQUNELGtFQVFDO0FBYkQsMkRBQXdEO0FBQ3hELElBQUksMEJBQTBCLENBQUM7QUFDL0IsU0FBZ0IsNkJBQTZCLENBQUMsUUFBUTtJQUNsRCwwQkFBMEIsR0FBRyxRQUFRLENBQUM7QUFDMUMsQ0FBQztBQUNELFNBQWdCLDJCQUEyQixDQUFDLE1BQU07SUFDOUMsSUFBSSxPQUFPLE1BQU0sRUFBRSxZQUFZLEtBQUssVUFBVSxFQUFFLENBQUM7UUFDN0MsT0FBTyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUNELElBQUksMEJBQTBCLEVBQUUsQ0FBQztRQUM3QixPQUFPLDBCQUEwQixFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUNELE1BQU0sSUFBSSw2QkFBYSxDQUFDLDhDQUE4QyxDQUFDLENBQUM7QUFDNUUsQ0FBQztBQUNELDhvREFBOG9EIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW50ZXJuYWxFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xubGV0IGtleWNsb2FrUHJvZHVjdGlvblJlc29sdmVyO1xuZXhwb3J0IGZ1bmN0aW9uIHNldEtleWNsb2FrUHJvZHVjdGlvblJlc29sdmVyKHJlc29sdmVyKSB7XG4gICAga2V5Y2xvYWtQcm9kdWN0aW9uUmVzb2x2ZXIgPSByZXNvbHZlcjtcbn1cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlS2V5Y2xvYWtJc1Byb2R1Y3Rpb24oY29uZmlnKSB7XG4gICAgaWYgKHR5cGVvZiBjb25maWc/LmlzUHJvZHVjdGlvbiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHJldHVybiBjb25maWcuaXNQcm9kdWN0aW9uKCk7XG4gICAgfVxuICAgIGlmIChrZXljbG9ha1Byb2R1Y3Rpb25SZXNvbHZlcikge1xuICAgICAgICByZXR1cm4ga2V5Y2xvYWtQcm9kdWN0aW9uUmVzb2x2ZXIoKTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJLZXljbG9hayBwcm9kdWN0aW9uIHJlc29sdmVyIG5vdCBpbml0aWFsaXplZFwiKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWNuVnVkR2x0WlM1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJaTR1THk0dUx5NHVMeTR1TDNOeVl5OXJaWGxqYkc5aGF5OXpaWEoyYVdObGN5OXlkVzUwYVcxbExuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVUZCTEU5QlFVOHNSVUZCUlN4aFFVRmhMRVZCUVVVc1RVRkJUU3g1UWtGQmVVSXNRMEZCUXp0QlFVbDRSQ3hKUVVGSkxEQkNRVUV3UkN4RFFVRkRPMEZCUlM5RUxFMUJRVTBzVlVGQlZTdzJRa0ZCTmtJc1EwRkRNME1zVVVGQk5FSTdTVUZGTlVJc01FSkJRVEJDTEVkQlFVY3NVVUZCVVN4RFFVRkRPMEZCUTNoRExFTkJRVU03UVVGRlJDeE5RVUZOTEZWQlFWVXNNa0pCUVRKQ0xFTkJRM3BETEUxQlFYbERPMGxCUlhwRExFbEJRVWtzVDBGQlR5eE5RVUZOTEVWQlFVVXNXVUZCV1N4TFFVRkxMRlZCUVZVc1JVRkJSU3hEUVVGRE8xRkJReTlETEU5QlFVOHNUVUZCVFN4RFFVRkRMRmxCUVZrc1JVRkJSU3hEUVVGRE8wbEJReTlDTEVOQlFVTTdTVUZEUkN4SlFVRkpMREJDUVVFd1FpeEZRVUZGTEVOQlFVTTdVVUZETDBJc1QwRkJUeXd3UWtGQk1FSXNSVUZCUlN4RFFVRkRPMGxCUTNSRExFTkJRVU03U1VGRFJDeE5RVUZOTEVsQlFVa3NZVUZCWVN4RFFVRkRMRGhEUVVFNFF5eERRVUZETEVOQlFVTTdRVUZETVVVc1EwRkJReUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0I3SUVsdWRHVnlibUZzUlhKeWIzSWdmU0JtY205dElGd2lRR1JsWTJGbUxYUnpMMlJpTFdSbFkyOXlZWFJ2Y25OY0lqdGNibHh1ZEhsd1pTQlFjbTlrZFdOMGFXOXVVbVZ6YjJ4MlpYSWdQU0FvS1NBOVBpQmliMjlzWldGdU8xeHVYRzVzWlhRZ2EyVjVZMnh2WVd0UWNtOWtkV04wYVc5dVVtVnpiMngyWlhJNklGQnliMlIxWTNScGIyNVNaWE52YkhabGNpQjhJSFZ1WkdWbWFXNWxaRHRjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUhObGRFdGxlV05zYjJGclVISnZaSFZqZEdsdmJsSmxjMjlzZG1WeUtGeHVJQ0J5WlhOdmJIWmxjam9nVUhKdlpIVmpkR2x2YmxKbGMyOXNkbVZ5WEc0cE9pQjJiMmxrSUh0Y2JpQWdhMlY1WTJ4dllXdFFjbTlrZFdOMGFXOXVVbVZ6YjJ4MlpYSWdQU0J5WlhOdmJIWmxjanRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlISmxjMjlzZG1WTFpYbGpiRzloYTBselVISnZaSFZqZEdsdmJpaGNiaUFnWTI5dVptbG5Qem9nZXlCcGMxQnliMlIxWTNScGIyNC9PaUFvS1NBOVBpQmliMjlzWldGdUlIMWNiaWs2SUdKdmIyeGxZVzRnZTF4dUlDQnBaaUFvZEhsd1pXOW1JR052Ym1acFp6OHVhWE5RY205a2RXTjBhVzl1SUQwOVBTQmNJbVoxYm1OMGFXOXVYQ0lwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdZMjl1Wm1sbkxtbHpVSEp2WkhWamRHbHZiaWdwTzF4dUlDQjlYRzRnSUdsbUlDaHJaWGxqYkc5aGExQnliMlIxWTNScGIyNVNaWE52YkhabGNpa2dlMXh1SUNBZ0lISmxkSFZ5YmlCclpYbGpiRzloYTFCeWIyUjFZM1JwYjI1U1pYTnZiSFpsY2lncE8xeHVJQ0I5WEc0Z0lIUm9jbTkzSUc1bGR5QkpiblJsY201aGJFVnljbTl5S0Z3aVMyVjVZMnh2WVdzZ2NISnZaSFZqZEdsdmJpQnlaWE52YkhabGNpQnViM1FnYVc1cGRHbGhiR2w2WldSY0lpazdYRzU5WEc0aVhYMD0iXX0=
|
|
@@ -41,6 +41,7 @@ const db_decorators_1 = require("@decaf-ts/db-decorators");
|
|
|
41
41
|
const core_1 = require("@decaf-ts/core");
|
|
42
42
|
const axios_1 = __importDefault(require("axios"));
|
|
43
43
|
const https = __importStar(require("node:https"));
|
|
44
|
+
const runtime_js_1 = require("./runtime.cjs");
|
|
44
45
|
class KibanaAuthService extends core_1.ClientBasedService {
|
|
45
46
|
async initialize(...args) {
|
|
46
47
|
const { ctxArgs } = (await this.logCtx(args, "initialize", true)).for(this.initialize);
|
|
@@ -72,7 +73,7 @@ class KibanaAuthService extends core_1.ClientBasedService {
|
|
|
72
73
|
},
|
|
73
74
|
withCredentials: true,
|
|
74
75
|
httpsAgent: new https.Agent({
|
|
75
|
-
rejectUnauthorized: (this.config
|
|
76
|
+
rejectUnauthorized: ((0, runtime_js_1.resolveKibanaIsProduction)(this.config)),
|
|
76
77
|
}),
|
|
77
78
|
}, 200, ...ctxArgs);
|
|
78
79
|
if (response.status >= 300) {
|
|
@@ -115,7 +116,7 @@ class KibanaAuthService extends core_1.ClientBasedService {
|
|
|
115
116
|
baseURL: `${config.protocol}://${config.host}`,
|
|
116
117
|
validateStatus: () => true,
|
|
117
118
|
httpsAgent: new https.Agent({
|
|
118
|
-
rejectUnauthorized: (this.config
|
|
119
|
+
rejectUnauthorized: ((0, runtime_js_1.resolveKibanaIsProduction)(this.config)),
|
|
119
120
|
}),
|
|
120
121
|
});
|
|
121
122
|
}
|
|
@@ -134,12 +135,12 @@ class KibanaAuthService extends core_1.ClientBasedService {
|
|
|
134
135
|
: undefined,
|
|
135
136
|
validateStatus: () => true,
|
|
136
137
|
httpsAgent: new https.Agent({
|
|
137
|
-
rejectUnauthorized: (this.config
|
|
138
|
+
rejectUnauthorized: ((0, runtime_js_1.resolveKibanaIsProduction)(this.config)),
|
|
138
139
|
}),
|
|
139
140
|
...extra,
|
|
140
141
|
});
|
|
141
142
|
}
|
|
142
143
|
}
|
|
143
144
|
exports.KibanaAuthService = KibanaAuthService;
|
|
144
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2liYW5hQXV0aFNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMva2liYW5hL3NlcnZpY2VzL0tpYmFuYUF1dGhTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxlQUFlLEVBQ2YsYUFBYSxFQUNiLGFBQWEsRUFDYixhQUFhLEdBQ2QsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRCxPQUFPLEtBQXdCLE1BQU0sT0FBTyxDQUFDO0FBQzdDLE9BQU8sS0FBSyxLQUFLLE1BQU0sWUFBWSxDQUFDO0FBRXBDLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxrQkFHdEM7SUFDQyxLQUFLLENBQUMsVUFBVSxDQUNkLEdBQUcsSUFBNkI7UUFFaEMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQ2xCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUM1QyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdkIsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBc0IsQ0FBQztRQUMvQyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDdEIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWEsQ0FDakIsUUFBNEIsRUFDNUIsUUFBNEIsRUFDNUIsR0FBRyxJQUE2QjtRQUVoQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FDbEIsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUks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LEVBQUUsQ0FBQzthQUMxRCxDQUFDO1NBQ0gsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLEtBQUssQ0FBQyxPQUFPLENBQ25CLE1BQXlDLEVBQ3pDLEdBQVcsRUFDWCxPQUFnQixFQUNoQixPQUErQixFQUMvQixLQUEwQixFQUMxQixXQUFtQixFQUNuQixHQUFHLElBQXlCO1FBRTVCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO1lBQ3pCLE1BQU07WUFDTixHQUFHO1lBQ0gsSUFBSSxFQUNGLE9BQU8sS0FBSyxTQUFTO2dCQUNuQixDQUFDLENBQUMsU0FBUztnQkFDWCxDQUFDLENBQUMsT0FBTyxPQUFPLEtBQUssUUFBUTtvQkFDM0IsQ0FBQyxDQUFDLE9BQU87b0JBQ1QsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDO1lBQy9CLElBQUksRUFBRSxPQUFPO2dCQUNYLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFO2dCQUM1RCxDQUFDLENBQUMsU0FBUztZQUNiLGNBQWMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJO1lBQzFCLFVBQVUsRUFBRSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUM7Z0JBQzFCLGtCQUFrQixFQUFFLENBQUUsSUFBSSxDQUFDLE1BQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQzthQUMxRCxDQUFDO1lBQ0YsR0FBRyxLQUFLO1NBQ1QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQmFkUmVxdWVzdEVycm9yLFxuICBDb25mbGljdEVycm9yLFxuICBJbnRlcm5hbEVycm9yLFxuICBOb3RGb3VuZEVycm9yLFxufSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IENvbnRleHR1YWxBcmdzLCBNYXliZUNvbnRleHR1YWxBcmcgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IENsaWVudEJhc2VkU2VydmljZSB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHR5cGUgeyBLaWJhbmFTZXR1cENvbmZpZywgS2liYW5hVXNlciB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IEF4aW9zLCB7IEF4aW9zSW5zdGFuY2UgfSBmcm9tIFwiYXhpb3NcIjtcbmltcG9ydCAqIGFzIGh0dHBzIGZyb20gXCJub2RlOmh0dHBzXCI7XG5cbmV4cG9ydCBjbGFzcyBLaWJhbmFBdXRoU2VydmljZSBleHRlbmRzIENsaWVudEJhc2VkU2VydmljZTxcbiAgQXhpb3NJbnN0YW5jZSxcbiAgS2liYW5hU2V0dXBDb25maWdcbj4ge1xuICBhc3luYyBpbml0aWFsaXplKFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8eyBjb25maWc6IEtpYmFuYVNldHVwQ29uZmlnOyBjbGllbnQ6IEF4aW9zSW5zdGFuY2UgfT4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJpbml0aWFsaXplXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5pbml0aWFsaXplKTtcbiAgICBjb25zdCBjb25maWcgPSBjdHhBcmdzWzBdIGFzIEtpYmFuYVNldHVwQ29uZmlnO1xuICAgIHRoaXMuX2NvbmZpZyA9IGNvbmZpZztcbiAgICBjb25zdCBjbGllbnQgPSB0aGlzLmNyZWF0ZUh0dHBDbGllbnQoY29uZmlnKTtcbiAgICB0aGlzLl9jbGllbnQgPSBjbGllbnQ7XG4gICAgcmV0dXJuIHsgY29uZmlnLCBjbGllbnQgfTtcbiAgfVxuXG4gIGFzeW5jIGxvZ2luVG9LaWJhbmEoXG4gICAgdXNlcm5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICBwYXNzd29yZDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8c3RyaW5nW10gfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwibG9naW5Ub0tpYmFuYVwiLCB0cnVlKVxuICAgICkuZm9yKHRoaXMubG9naW5Ub0tpYmFuYSk7XG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5jb25maWc7XG4gICAgY29uc3QgY3JlZGVudGlhbHMgPSB7XG4gICAgICB1c2VybmFtZTogdXNlcm5hbWUgPz8gY29uZmlnLmFkbWluQXBpVXNlcj8udXNlcm5hbWUsXG4gICAgICBwYXNzd29yZDogcGFzc3dvcmQgPz8gY29uZmlnLmFkbWluQXBpVXNlcj8ucGFzc3dvcmQsXG4gICAgfTtcbiAgICBpZiAoIWNyZWRlbnRpYWxzLnVzZXJuYW1lIHx8ICFjcmVkZW50aWFscy5wYXNzd29yZCkge1xuICAgICAgdGhyb3cgbmV3IEJhZFJlcXVlc3RFcnJvcihcIktpYmFuYSBsb2dpbiByZXF1aXJlcyBjcmVkZW50aWFsc1wiKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMucmVxdWVzdChcbiAgICAgIFwiUE9TVFwiLFxuICAgICAgYCR7Y29uZmlnLnByb3RvY29sfTovLyR7Y29uZmlnLmhvc3R9L2ludGVybmFsL3NlY3VyaXR5L2xvZ2luYCxcbiAgICAgIHtcbiAgICAgICAgcHJvdmlkZXJUeXBlOiBcImJhc2ljXCIsXG4gICAgICAgIHByb3ZpZGVyTmFtZTogXCJiYXNpY1wiLFxuICAgICAgICBjdXJyZW50VVJMOiBcIi9sb2dpblwiLFxuICAgICAgfSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHtcbiAgICAgICAgYXV0aDogY3JlZGVudGlhbHMsXG4gICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICBcImtibi14c3JmXCI6IFwidHJ1ZVwiLFxuICAgICAgICAgIFwiY29udGVudC10eXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgICAgICB9LFxuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAgIGh0dHBzQWdlbnQ6IG5ldyBodHRwcy5BZ2VudCh7XG4gICAgICAgICAgcmVqZWN0VW5hdXRob3JpemVkOiAoKHRoaXMuY29uZmlnIGFzIGFueSkuaXNQcm9kdWN0aW9uKCkpLFxuICAgICAgICB9KSxcbiAgICAgIH0sXG4gICAgICAyMDAsXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcblxuICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPj0gMzAwKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYEtpYmFuYSBsb2dpbiBmYWlsZWQ6ICR7cmVzcG9uc2Uuc3RhdHVzVGV4dH1gO1xuICAgICAgdGhyb3cgbmV3IEJhZFJlcXVlc3RFcnJvcihtZXNzYWdlKTtcbiAgICB9XG5cbiAgICBjb25zdCBzZXRDb29raWUgPSByZXNwb25zZS5oZWFkZXJzW1wic2V0LWNvb2tpZVwiXSBhcyBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcbiAgICBpZiAoIXNldENvb2tpZT8ubGVuZ3RoKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiBzZXRDb29raWU7XG4gIH1cblxuICBhc3luYyBsb2dvdXQoXG4gICAgdXNlcjogS2liYW5hVXNlcixcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwibG9nb3V0XCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5sb2dvdXQpO1xuICAgIGF3YWl0IHRoaXMucmVxdWVzdChcbiAgICAgIFwiUE9TVFwiLFxuICAgICAgYCR7dGhpcy5jb25maWcucHJvdG9jb2x9Oi8vJHt0aGlzLmNvbmZpZy5ob3N0fS9sb2dvdXRgLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgdXNlcixcbiAgICAgIHtcbiAgICAgICAgaGVhZGVyczogeyBcImtibi14c3JmXCI6IFwidHJ1ZVwiIH0sXG4gICAgICB9LFxuICAgICAgMjAwLFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcGFyc2VFcnJvcihlcnJvcjogRXJyb3IpOiBFcnJvciB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGVycm9yLm1lc3NhZ2UgfHwgZXJyb3IubmFtZSB8fCBcIlVua25vd24gZXJyb3JcIjtcbiAgICBjb25zdCBsb3dlck1lc3NhZ2UgPSBtZXNzYWdlLnRvTG93ZXJDYXNlKCk7XG5cbiAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwibm90IGZvdW5kXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwNFwiKSkge1xuICAgICAgcmV0dXJuIG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJhbHJlYWR5IGV4aXN0c1wiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJjb25mbGljdFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDlcIikpIHtcbiAgICAgIHJldHVybiBuZXcgQ29uZmxpY3RFcnJvcihtZXNzYWdlKTtcbiAgICB9XG5cbiAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiaW52YWxpZFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJiYWQgcmVxdWVzdFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDBcIikpIHtcbiAgICAgIHJldHVybiBuZXcgQmFkUmVxdWVzdEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJ1bmF1dGhvcml6ZWRcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDAxXCIpKSB7XG4gICAgICByZXR1cm4gbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuXG4gICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImZvcmJpZGRlblwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDNcIikpIHtcbiAgICAgIHJldHVybiBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEludGVybmFsRXJyb3IobWVzc2FnZSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUh0dHBDbGllbnQoY29uZmlnOiBLaWJhbmFTZXR1cENvbmZpZyk6IEF4aW9zSW5zdGFuY2Uge1xuICAgIHJldHVybiBBeGlvcy5jcmVhdGUoe1xuICAgICAgYmFzZVVSTDogYCR7Y29uZmlnLnByb3RvY29sfTovLyR7Y29uZmlnLmhvc3R9YCxcbiAgICAgIHZhbGlkYXRlU3RhdHVzOiAoKSA9PiB0cnVlLFxuICAgICAgaHR0cHNBZ2VudDogbmV3IGh0dHBzLkFnZW50KHtcbiAgICAgICAgcmVqZWN0VW5hdXRob3JpemVkOiAoKHRoaXMuY29uZmlnIGFzIGFueSkuaXNQcm9kdWN0aW9uKCkpLFxuICAgICAgfSksXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlcXVlc3QoXG4gICAgbWV0aG9kOiBcIkdFVFwiIHwgXCJQT1NUXCIgfCBcIlBVVFwiIHwgXCJERUxFVEVcIixcbiAgICB1cmw6IHN0cmluZyxcbiAgICBwYXlsb2FkOiB1bmtub3duLFxuICAgIGFwaVVzZXI6IEtpYmFuYVVzZXIgfCB1bmRlZmluZWQsXG4gICAgZXh0cmE6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgc3VjY2Vzc0NvZGU6IG51bWJlcixcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxhbnk+XG4gICk6IFByb21pc2U8YW55PiB7XG4gICAgdGhpcy5sb2dDdHgoYXJncywgdGhpcy5yZXF1ZXN0KTtcbiAgICByZXR1cm4gdGhpcy5jbGllbnQucmVxdWVzdCh7XG4gICAgICBtZXRob2QsXG4gICAgICB1cmwsXG4gICAgICBkYXRhOlxuICAgICAgICBwYXlsb2FkID09PSB1bmRlZmluZWRcbiAgICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICAgIDogdHlwZW9mIHBheWxvYWQgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgID8gcGF5bG9hZFxuICAgICAgICAgICAgOiBKU09OLnN0cmluZ2lmeShwYXlsb2FkKSxcbiAgICAgIGF1dGg6IGFwaVVzZXJcbiAgICAgICAgPyB7IHVzZXJuYW1lOiBhcGlVc2VyLnVzZXJuYW1lLCBwYXNzd29yZDogYXBpVXNlci5wYXNzd29yZCB9XG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgdmFsaWRhdGVTdGF0dXM6ICgpID0+IHRydWUsXG4gICAgICBodHRwc0FnZW50OiBuZXcgaHR0cHMuQWdlbnQoe1xuICAgICAgICByZWplY3RVbmF1dGhvcml6ZWQ6ICgodGhpcy5jb25maWcgYXMgYW55KS5pc1Byb2R1Y3Rpb24oKSksXG4gICAgICB9KSxcbiAgICAgIC4uLmV4dHJhLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
145
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2liYW5hQXV0aFNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJLaWJhbmFBdXRoU2VydmljZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyREFBd0c7QUFDeEcseUNBQW9EO0FBQ3BELGtEQUEwQjtBQUMxQixrREFBb0M7QUFDcEMsTUFBYSxpQkFBa0IsU0FBUSx5QkFBa0I7SUFDckQsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUk7UUFDcEIsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZGLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDdEIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBQ0QsS0FBSyxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSTtRQUMzQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDN0YsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUMzQixNQUFNLFdBQVcsR0FBRztZQUNoQixRQUFRLEVBQUUsUUFBUSxJQUFJLE1BQU0sQ0FBQyxZQUFZLEVBQUUsUUFBUTtZQUNuRCxRQUFRLEVBQUUsUUFBUSxJQUFJLE1BQU0sQ0FBQyxZQUFZLEVBQUUsUUFBUTtTQUN0RCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDakQsTUFBTSxJQUFJLCtCQUFlLENBQUMsbUNBQW1DLENBQUMsQ0FBQztRQUNuRSxDQUFDO1FBQ0QsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxRQUFRLE1BQU0sTUFBTSxDQUFDLElBQUksMEJBQTBCLEVBQUU7WUFDdkcsWUFBWSxFQUFFLE9BQU87WUFDckIsWUFBWSxFQUFFLE9BQU87WUFDckIsVUFBVSxFQUFFLFFBQVE7U0FDdkIsRUFBRSxTQUFTLEVBQUU7WUFDVixJQUFJLEVBQUUsV0FBVztZQUNqQixPQUFPLEVBQUU7Z0JBQ0wsVUFBVSxFQUFFLE1BQU07Z0JBQ2xCLGNBQWMsRUFBRSxrQkFBa0I7YUFDckM7WUFDRCxlQUFlLEVBQUUsSUFBSTtZQUNyQixVQUFVLEVBQUUsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDO2dCQUN4QixrQkFBa0IsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7YUFDbkQsQ0FBQztTQUNMLEVBQUUsR0FBRyxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUM7UUFDcEIsSUFBSSxRQUFRLENBQUMsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sT0FBTyxHQUFHLHdCQUF3QixRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDOUQsTUFBTSxJQUFJLCtCQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLFNBQVMsRUFBRSxNQUFNO1lBQ2xCLE9BQU8sU0FBUyxDQUFDO1FBQ3JCLE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFDRCxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxHQUFHLElBQUk7UUFDdEIsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9FLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUU7WUFDaEcsT0FBTyxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTtTQUNsQyxFQUFFLEdBQUcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxVQUFVLENBQUMsS0FBSztRQUNaLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLElBQUksSUFBSSxlQUFlLENBQUM7UUFDL0QsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzNDLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDckUsT0FBTyxJQUFJLDZCQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUNELElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQy9HLE9BQU8sSUFBSSw2QkFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3RDLENBQUM7UUFDRCxJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDM0csT0FBTyxJQUFJLCtCQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEMsQ0FBQztRQUNELElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDeEUsT0FBTyxJQUFJLDZCQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUNELElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDckUsT0FBTyxJQUFJLDZCQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUNELE9BQU8sSUFBSSw2QkFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxNQUFNO1FBQ25CLE9BQU8sZUFBSyxDQUFDLE1BQU0sQ0FBQztZQUNoQixPQUFPLEVBQUUsR0FBRyxNQUFNLENBQUMsUUFBUSxNQUFNLE1BQU0sQ0FBQyxJQUFJLEVBQUU7WUFDOUMsY0FBYyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUk7WUFDMUIsVUFBVSxFQUFFLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQztnQkFDeEIsa0JBQWtCLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO2FBQ25ELENBQUM7U0FDTCxDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0QsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxHQUFHLElBQUk7UUFDcEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7WUFDdkIsTUFBTTtZQUNOLEdBQUc7WUFDSCxJQUFJLEVBQUUsT0FBTyxLQUFLLFNBQVM7Z0JBQ3ZCLENBQUMsQ0FBQyxTQUFTO2dCQUNYLENBQUMsQ0FBQyxPQUFPLE9BQU8sS0FBSyxRQUFRO29CQUN6QixDQUFDLENBQUMsT0FBTztvQkFDVCxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7WUFDakMsSUFBSSxFQUFFLE9BQU87Z0JBQ1QsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUU7Z0JBQzVELENBQUMsQ0FBQyxTQUFTO1lBQ2YsY0FBYyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUk7WUFDMUIsVUFBVSxFQUFFLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQztnQkFDeEIsa0JBQWtCLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO2FBQ25ELENBQUM7WUFDRixHQUFHLEtBQUs7U0FDWCxDQUFDLENBQUM7SUFDUCxDQUFDO0NBQ0o7QUFsR0QsOENBa0dDO0FBQ0QsMDNZQUEwM1kiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYWRSZXF1ZXN0RXJyb3IsIENvbmZsaWN0RXJyb3IsIEludGVybmFsRXJyb3IsIE5vdEZvdW5kRXJyb3IsIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBDbGllbnRCYXNlZFNlcnZpY2UgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCBBeGlvcyBmcm9tIFwiYXhpb3NcIjtcbmltcG9ydCAqIGFzIGh0dHBzIGZyb20gXCJub2RlOmh0dHBzXCI7XG5leHBvcnQgY2xhc3MgS2liYW5hQXV0aFNlcnZpY2UgZXh0ZW5kcyBDbGllbnRCYXNlZFNlcnZpY2Uge1xuICAgIGFzeW5jIGluaXRpYWxpemUoLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImluaXRpYWxpemVcIiwgdHJ1ZSkpLmZvcih0aGlzLmluaXRpYWxpemUpO1xuICAgICAgICBjb25zdCBjb25maWcgPSBjdHhBcmdzWzBdO1xuICAgICAgICB0aGlzLl9jb25maWcgPSBjb25maWc7XG4gICAgICAgIGNvbnN0IGNsaWVudCA9IHRoaXMuY3JlYXRlSHR0cENsaWVudChjb25maWcpO1xuICAgICAgICB0aGlzLl9jbGllbnQgPSBjbGllbnQ7XG4gICAgICAgIHJldHVybiB7IGNvbmZpZywgY2xpZW50IH07XG4gICAgfVxuICAgIGFzeW5jIGxvZ2luVG9LaWJhbmEodXNlcm5hbWUsIHBhc3N3b3JkLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwibG9naW5Ub0tpYmFuYVwiLCB0cnVlKSkuZm9yKHRoaXMubG9naW5Ub0tpYmFuYSk7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY29uZmlnO1xuICAgICAgICBjb25zdCBjcmVkZW50aWFscyA9IHtcbiAgICAgICAgICAgIHVzZXJuYW1lOiB1c2VybmFtZSA/PyBjb25maWcuYWRtaW5BcGlVc2VyPy51c2VybmFtZSxcbiAgICAgICAgICAgIHBhc3N3b3JkOiBwYXNzd29yZCA/PyBjb25maWcuYWRtaW5BcGlVc2VyPy5wYXNzd29yZCxcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKCFjcmVkZW50aWFscy51c2VybmFtZSB8fCAhY3JlZGVudGlhbHMucGFzc3dvcmQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBCYWRSZXF1ZXN0RXJyb3IoXCJLaWJhbmEgbG9naW4gcmVxdWlyZXMgY3JlZGVudGlhbHNcIik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLnJlcXVlc3QoXCJQT1NUXCIsIGAke2NvbmZpZy5wcm90b2NvbH06Ly8ke2NvbmZpZy5ob3N0fS9pbnRlcm5hbC9zZWN1cml0eS9sb2dpbmAsIHtcbiAgICAgICAgICAgIHByb3ZpZGVyVHlwZTogXCJiYXNpY1wiLFxuICAgICAgICAgICAgcHJvdmlkZXJOYW1lOiBcImJhc2ljXCIsXG4gICAgICAgICAgICBjdXJyZW50VVJMOiBcIi9sb2dpblwiLFxuICAgICAgICB9LCB1bmRlZmluZWQsIHtcbiAgICAgICAgICAgIGF1dGg6IGNyZWRlbnRpYWxzLFxuICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgIFwia2JuLXhzcmZcIjogXCJ0cnVlXCIsXG4gICAgICAgICAgICAgICAgXCJjb250ZW50LXR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgICAgICAgaHR0cHNBZ2VudDogbmV3IGh0dHBzLkFnZW50KHtcbiAgICAgICAgICAgICAgICByZWplY3RVbmF1dGhvcml6ZWQ6ICh0aGlzLmNvbmZpZy5pc1Byb2R1Y3Rpb24oKSksXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgfSwgMjAwLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA+PSAzMDApIHtcbiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgS2liYW5hIGxvZ2luIGZhaWxlZDogJHtyZXNwb25zZS5zdGF0dXNUZXh0fWA7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQmFkUmVxdWVzdEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNldENvb2tpZSA9IHJlc3BvbnNlLmhlYWRlcnNbXCJzZXQtY29va2llXCJdO1xuICAgICAgICBpZiAoIXNldENvb2tpZT8ubGVuZ3RoKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgcmV0dXJuIHNldENvb2tpZTtcbiAgICB9XG4gICAgYXN5bmMgbG9nb3V0KHVzZXIsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJsb2dvdXRcIiwgdHJ1ZSkpLmZvcih0aGlzLmxvZ291dCk7XG4gICAgICAgIGF3YWl0IHRoaXMucmVxdWVzdChcIlBPU1RcIiwgYCR7dGhpcy5jb25maWcucHJvdG9jb2x9Oi8vJHt0aGlzLmNvbmZpZy5ob3N0fS9sb2dvdXRgLCB1bmRlZmluZWQsIHVzZXIsIHtcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJrYm4teHNyZlwiOiBcInRydWVcIiB9LFxuICAgICAgICB9LCAyMDAsIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICBwYXJzZUVycm9yKGVycm9yKSB7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnJvci5tZXNzYWdlIHx8IGVycm9yLm5hbWUgfHwgXCJVbmtub3duIGVycm9yXCI7XG4gICAgICAgIGNvbnN0IGxvd2VyTWVzc2FnZSA9IG1lc3NhZ2UudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIm5vdCBmb3VuZFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDRcIikpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiYWxyZWFkeSBleGlzdHNcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiY29uZmxpY3RcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDA5XCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IENvbmZsaWN0RXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImludmFsaWRcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiYmFkIHJlcXVlc3RcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDAwXCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEJhZFJlcXVlc3RFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwidW5hdXRob3JpemVkXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwMVwiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJmb3JiaWRkZW5cIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDAzXCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBJbnRlcm5hbEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgICBjcmVhdGVIdHRwQ2xpZW50KGNvbmZpZykge1xuICAgICAgICByZXR1cm4gQXhpb3MuY3JlYXRlKHtcbiAgICAgICAgICAgIGJhc2VVUkw6IGAke2NvbmZpZy5wcm90b2NvbH06Ly8ke2NvbmZpZy5ob3N0fWAsXG4gICAgICAgICAgICB2YWxpZGF0ZVN0YXR1czogKCkgPT4gdHJ1ZSxcbiAgICAgICAgICAgIGh0dHBzQWdlbnQ6IG5ldyBodHRwcy5BZ2VudCh7XG4gICAgICAgICAgICAgICAgcmVqZWN0VW5hdXRob3JpemVkOiAodGhpcy5jb25maWcuaXNQcm9kdWN0aW9uKCkpLFxuICAgICAgICAgICAgfSksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBhc3luYyByZXF1ZXN0KG1ldGhvZCwgdXJsLCBwYXlsb2FkLCBhcGlVc2VyLCBleHRyYSwgc3VjY2Vzc0NvZGUsIC4uLmFyZ3MpIHtcbiAgICAgICAgdGhpcy5sb2dDdHgoYXJncywgdGhpcy5yZXF1ZXN0KTtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2xpZW50LnJlcXVlc3Qoe1xuICAgICAgICAgICAgbWV0aG9kLFxuICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgZGF0YTogcGF5bG9hZCA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICA6IHR5cGVvZiBwYXlsb2FkID09PSBcInN0cmluZ1wiXG4gICAgICAgICAgICAgICAgICAgID8gcGF5bG9hZFxuICAgICAgICAgICAgICAgICAgICA6IEpTT04uc3RyaW5naWZ5KHBheWxvYWQpLFxuICAgICAgICAgICAgYXV0aDogYXBpVXNlclxuICAgICAgICAgICAgICAgID8geyB1c2VybmFtZTogYXBpVXNlci51c2VybmFtZSwgcGFzc3dvcmQ6IGFwaVVzZXIucGFzc3dvcmQgfVxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgdmFsaWRhdGVTdGF0dXM6ICgpID0+IHRydWUsXG4gICAgICAgICAgICBodHRwc0FnZW50OiBuZXcgaHR0cHMuQWdlbnQoe1xuICAgICAgICAgICAgICAgIHJlamVjdFVuYXV0aG9yaXplZDogKHRoaXMuY29uZmlnLmlzUHJvZHVjdGlvbigpKSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgLi4uZXh0cmEsXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVMybGlZVzVoUVhWMGFGTmxjblpwWTJVdWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUl1TGk4dUxpOHVMaTh1TGk5emNtTXZhMmxpWVc1aEwzTmxjblpwWTJWekwwdHBZbUZ1WVVGMWRHaFRaWEoyYVdObExuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVUZCTEU5QlFVOHNSVUZEVEN4bFFVRmxMRVZCUTJZc1lVRkJZU3hGUVVOaUxHRkJRV0VzUlVGRFlpeGhRVUZoTEVkQlEyUXNUVUZCVFN4NVFrRkJlVUlzUTBGQlF6dEJRVVZxUXl4UFFVRlBMRVZCUVVVc2EwSkJRV3RDTEVWQlFVVXNUVUZCVFN4blFrRkJaMElzUTBGQlF6dEJRVVZ3UkN4UFFVRlBMRXRCUVhkQ0xFMUJRVTBzVDBGQlR5eERRVUZETzBGQlF6ZERMRTlCUVU4c1MwRkJTeXhMUVVGTExFMUJRVTBzV1VGQldTeERRVUZETzBGQlJYQkRMRTFCUVUwc1QwRkJUeXhwUWtGQmEwSXNVMEZCVVN4clFrRkhkRU03U1VGRFF5eExRVUZMTEVOQlFVTXNWVUZCVlN4RFFVTmtMRWRCUVVjc1NVRkJOa0k3VVVGRmFFTXNUVUZCVFN4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFTkJRMnhDTEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzV1VGQldTeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVTTFReXhEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNN1VVRkRka0lzVFVGQlRTeE5RVUZOTEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJjMElzUTBGQlF6dFJRVU12UXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhIUVVGSExFMUJRVTBzUTBGQlF6dFJRVU4wUWl4TlFVRk5MRTFCUVUwc1IwRkJSeXhKUVVGSkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03VVVGRE4wTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1IwRkJSeXhOUVVGTkxFTkJRVU03VVVGRGRFSXNUMEZCVHl4RlFVRkZMRTFCUVUwc1JVRkJSU3hOUVVGTkxFVkJRVVVzUTBGQlF6dEpRVU0xUWl4RFFVRkRPMGxCUlVRc1MwRkJTeXhEUVVGRExHRkJRV0VzUTBGRGFrSXNVVUZCTkVJc1JVRkROVUlzVVVGQk5FSXNSVUZETlVJc1IwRkJSeXhKUVVFMlFqdFJRVVZvUXl4TlFVRk5MRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVWNzUTBGRGJFSXNUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeGxRVUZsTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUXk5RExFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4aFFVRmhMRU5CUVVNc1EwRkJRenRSUVVNeFFpeE5RVUZOTEUxQlFVMHNSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRE8xRkJRek5DTEUxQlFVMHNWMEZCVnl4SFFVRkhPMWxCUTJ4Q0xGRkJRVkVzUlVGQlJTeFJRVUZSTEVsQlFVa3NUVUZCVFN4RFFVRkRMRmxCUVZrc1JVRkJSU3hSUVVGUk8xbEJRMjVFTEZGQlFWRXNSVUZCUlN4UlFVRlJMRWxCUVVrc1RVRkJUU3hEUVVGRExGbEJRVmtzUlVGQlJTeFJRVUZSTzFOQlEzQkVMRU5CUVVNN1VVRkRSaXhKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEZGQlFWRXNTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhSUVVGUkxFVkJRVVVzUTBGQlF6dFpRVU51UkN4TlFVRk5MRWxCUVVrc1pVRkJaU3hEUVVGRExHMURRVUZ0UXl4RFFVRkRMRU5CUVVNN1VVRkRha1VzUTBGQlF6dFJRVVZFTEUxQlFVMHNVVUZCVVN4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGRGFrTXNUVUZCVFN4RlFVTk9MRWRCUVVjc1RVRkJUU3hEUVVGRExGRkJRVkVzVFVGQlRTeE5RVUZOTEVOQlFVTXNTVUZCU1N3d1FrRkJNRUlzUlVGRE4wUTdXVUZEUlN4WlFVRlpMRVZCUVVVc1QwRkJUenRaUVVOeVFpeFpRVUZaTEVWQlFVVXNUMEZCVHp0WlFVTnlRaXhWUVVGVkxFVkJRVVVzVVVGQlVUdFRRVU55UWl4RlFVTkVMRk5CUVZNc1JVRkRWRHRaUVVORkxFbEJRVWtzUlVGQlJTeFhRVUZYTzFsQlEycENMRTlCUVU4c1JVRkJSVHRuUWtGRFVDeFZRVUZWTEVWQlFVVXNUVUZCVFR0blFrRkRiRUlzWTBGQll5eEZRVUZGTEd0Q1FVRnJRanRoUVVOdVF6dFpRVU5FTEdWQlFXVXNSVUZCUlN4SlFVRkpPMWxCUTNKQ0xGVkJRVlVzUlVGQlJTeEpRVUZKTEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNN1owSkJRekZDTEd0Q1FVRnJRaXhGUVVGRkxFTkJRVVVzU1VGQlNTeERRVUZETEUxQlFXTXNRMEZCUXl4WlFVRlpMRVZCUVVVc1EwRkJRenRoUVVNeFJDeERRVUZETzFOQlEwZ3NSVUZEUkN4SFFVRkhMRVZCUTBnc1IwRkJSeXhQUVVGUExFTkJRMWdzUTBGQlF6dFJRVVZHTEVsQlFVa3NVVUZCVVN4RFFVRkRMRTFCUVUwc1NVRkJTU3hIUVVGSExFVkJRVVVzUTBGQlF6dFpRVU16UWl4TlFVRk5MRTlCUVU4c1IwRkJSeXgzUWtGQmQwSXNVVUZCVVN4RFFVRkRMRlZCUVZVc1JVRkJSU3hEUVVGRE8xbEJRemxFTEUxQlFVMHNTVUZCU1N4bFFVRmxMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRGNrTXNRMEZCUXp0UlFVVkVMRTFCUVUwc1UwRkJVeXhIUVVGSExGRkJRVkVzUTBGQlF5eFBRVUZQTEVOQlFVTXNXVUZCV1N4RFFVRjVRaXhEUVVGRE8xRkJRM3BGTEVsQlFVa3NRMEZCUXl4VFFVRlRMRVZCUVVVc1RVRkJUVHRaUVVGRkxFOUJRVThzVTBGQlV5eERRVUZETzFGQlEzcERMRTlCUVU4c1UwRkJVeXhEUVVGRE8wbEJRMjVDTEVOQlFVTTdTVUZGUkN4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVOV0xFbEJRV2RDTEVWQlEyaENMRWRCUVVjc1NVRkJOa0k3VVVGRmFFTXNUVUZCVFN4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFTkJRMnhDTEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzVVVGQlVTeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVTjRReXhEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1VVRkRia0lzVFVGQlRTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVTm9RaXhOUVVGTkxFVkJRMDRzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRkZCUVZFc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NVMEZCVXl4RlFVTjBSQ3hUUVVGVExFVkJRMVFzU1VGQlNTeEZRVU5LTzFsQlEwVXNUMEZCVHl4RlFVRkZMRVZCUVVVc1ZVRkJWU3hGUVVGRkxFMUJRVTBzUlVGQlJUdFRRVU5vUXl4RlFVTkVMRWRCUVVjc1JVRkRTQ3hIUVVGSExFOUJRVThzUTBGRFdDeERRVUZETzBsQlEwb3NRMEZCUXp0SlFVVlRMRlZCUVZVc1EwRkJReXhMUVVGWk8xRkJReTlDTEUxQlFVMHNUMEZCVHl4SFFVRkhMRXRCUVVzc1EwRkJReXhQUVVGUExFbEJRVWtzUzBGQlN5eERRVUZETEVsQlFVa3NTVUZCU1N4bFFVRmxMRU5CUVVNN1VVRkRMMFFzVFVGQlRTeFpRVUZaTEVkQlFVY3NUMEZCVHl4RFFVRkRMRmRCUVZjc1JVRkJSU3hEUVVGRE8xRkJSVE5ETEVsQlFVa3NXVUZCV1N4RFFVRkRMRkZCUVZFc1EwRkJReXhYUVVGWExFTkJRVU1zU1VGQlNTeFpRVUZaTEVOQlFVTXNVVUZCVVN4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVGRkxFTkJRVU03V1VGRGRrVXNUMEZCVHl4SlFVRkpMR0ZCUVdFc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dFJRVU53UXl4RFFVRkRPMUZCUlVRc1NVRkJTU3haUVVGWkxFTkJRVU1zVVVGQlVTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFbEJRVWtzV1VGQldTeERRVUZETEZGQlFWRXNRMEZCUXl4VlFVRlZMRU5CUVVNc1NVRkJTU3haUVVGWkxFTkJRVU1zVVVGQlVTeERRVUZETEV0QlFVc3NRMEZCUXl4RlFVRkZMRU5CUVVNN1dVRkRha2dzVDBGQlR5eEpRVUZKTEdGQlFXRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVOd1F5eERRVUZETzFGQlJVUXNTVUZCU1N4WlFVRlpMRU5CUVVNc1VVRkJVU3hEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEZsQlFWa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1lVRkJZU3hEUVVGRExFbEJRVWtzV1VGQldTeERRVUZETEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkJSU3hEUVVGRE8xbEJRemRITEU5QlFVOHNTVUZCU1N4bFFVRmxMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRGRFTXNRMEZCUXp0UlFVVkVMRWxCUVVrc1dVRkJXU3hEUVVGRExGRkJRVkVzUTBGQlF5eGpRVUZqTEVOQlFVTXNTVUZCU1N4WlFVRlpMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eEZRVUZGTEVOQlFVTTdXVUZETVVVc1QwRkJUeXhKUVVGSkxHRkJRV0VzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTndReXhEUVVGRE8xRkJSVVFzU1VGQlNTeFpRVUZaTEVOQlFVTXNVVUZCVVN4RFFVRkRMRmRCUVZjc1EwRkJReXhKUVVGSkxGbEJRVmtzUTBGQlF5eFJRVUZSTEVOQlFVTXNTMEZCU3l4RFFVRkRMRVZCUVVVc1EwRkJRenRaUVVOMlJTeFBRVUZQTEVsQlFVa3NZVUZCWVN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8xRkJRM0JETEVOQlFVTTdVVUZGUkN4UFFVRlBMRWxCUVVrc1lVRkJZU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzBsQlEzQkRMRU5CUVVNN1NVRkZUeXhuUWtGQlowSXNRMEZCUXl4TlFVRjVRanRSUVVOb1JDeFBRVUZQTEV0QlFVc3NRMEZCUXl4TlFVRk5MRU5CUVVNN1dVRkRiRUlzVDBGQlR5eEZRVUZGTEVkQlFVY3NUVUZCVFN4RFFVRkRMRkZCUVZFc1RVRkJUU3hOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTzFsQlF6bERMR05CUVdNc1JVRkJSU3hIUVVGSExFVkJRVVVzUTBGQlF5eEpRVUZKTzFsQlF6RkNMRlZCUVZVc1JVRkJSU3hKUVVGSkxFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTTdaMEpCUXpGQ0xHdENRVUZyUWl4RlFVRkZMRU5CUVVVc1NVRkJTU3hEUVVGRExFMUJRV01zUTBGQlF5eFpRVUZaTEVWQlFVVXNRMEZCUXp0aFFVTXhSQ3hEUVVGRE8xTkJRMGdzUTBGQlF5eERRVUZETzBsQlEwd3NRMEZCUXp0SlFVVlBMRXRCUVVzc1EwRkJReXhQUVVGUExFTkJRMjVDTEUxQlFYbERMRVZCUTNwRExFZEJRVmNzUlVGRFdDeFBRVUZuUWl4RlFVTm9RaXhQUVVFclFpeEZRVU12UWl4TFFVRXdRaXhGUVVNeFFpeFhRVUZ0UWl4RlFVTnVRaXhIUVVGSExFbEJRWGxDTzFGQlJUVkNMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVOb1F5eFBRVUZQTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRE8xbEJRM3BDTEUxQlFVMDdXVUZEVGl4SFFVRkhPMWxCUTBnc1NVRkJTU3hGUVVOR0xFOUJRVThzUzBGQlN5eFRRVUZUTzJkQ1FVTnVRaXhEUVVGRExFTkJRVU1zVTBGQlV6dG5Ra0ZEV0N4RFFVRkRMRU5CUVVNc1QwRkJUeXhQUVVGUExFdEJRVXNzVVVGQlVUdHZRa0ZETTBJc1EwRkJReXhEUVVGRExFOUJRVTg3YjBKQlExUXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zVDBGQlR5eERRVUZETzFsQlF5OUNMRWxCUVVrc1JVRkJSU3hQUVVGUE8yZENRVU5ZTEVOQlFVTXNRMEZCUXl4RlFVRkZMRkZCUVZFc1JVRkJSU3hQUVVGUExFTkJRVU1zVVVGQlVTeEZRVUZGTEZGQlFWRXNSVUZCUlN4UFFVRlBMRU5CUVVNc1VVRkJVU3hGUVVGRk8yZENRVU0xUkN4RFFVRkRMRU5CUVVNc1UwRkJVenRaUVVOaUxHTkJRV01zUlVGQlJTeEhRVUZITEVWQlFVVXNRMEZCUXl4SlFVRkpPMWxCUXpGQ0xGVkJRVlVzUlVGQlJTeEpRVUZKTEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNN1owSkJRekZDTEd0Q1FVRnJRaXhGUVVGRkxFTkJRVVVzU1VGQlNTeERRVUZETEUxQlFXTXNRMEZCUXl4WlFVRlpMRVZCUVVVc1EwRkJRenRoUVVNeFJDeERRVUZETzFsQlEwWXNSMEZCUnl4TFFVRkxPMU5CUTFRc1EwRkJReXhEUVVGRE8wbEJRMHdzUTBGQlF6dERRVU5HSWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUh0Y2JpQWdRbUZrVW1WeGRXVnpkRVZ5Y205eUxGeHVJQ0JEYjI1bWJHbGpkRVZ5Y205eUxGeHVJQ0JKYm5SbGNtNWhiRVZ5Y205eUxGeHVJQ0JPYjNSR2IzVnVaRVZ5Y205eUxGeHVmU0JtY205dElGd2lRR1JsWTJGbUxYUnpMMlJpTFdSbFkyOXlZWFJ2Y25OY0lqdGNibWx0Y0c5eWRDQjdJRU52Ym5SbGVIUjFZV3hCY21kekxDQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtY2dmU0JtY205dElGd2lRR1JsWTJGbUxYUnpMMk52Y21WY0lqdGNibWx0Y0c5eWRDQjdJRU5zYVdWdWRFSmhjMlZrVTJWeWRtbGpaU0I5SUdaeWIyMGdYQ0pBWkdWallXWXRkSE12WTI5eVpWd2lPMXh1YVcxd2IzSjBJSFI1Y0dVZ2V5QkxhV0poYm1GVFpYUjFjRU52Ym1acFp5d2dTMmxpWVc1aFZYTmxjaUI5SUdaeWIyMGdYQ0l1TGk5MGVYQmxjMXdpTzF4dWFXMXdiM0owSUVGNGFXOXpMQ0I3SUVGNGFXOXpTVzV6ZEdGdVkyVWdmU0JtY205dElGd2lZWGhwYjNOY0lqdGNibWx0Y0c5eWRDQXFJR0Z6SUdoMGRIQnpJR1p5YjIwZ1hDSnViMlJsT21oMGRIQnpYQ0k3WEc1Y2JtVjRjRzl5ZENCamJHRnpjeUJMYVdKaGJtRkJkWFJvVTJWeWRtbGpaU0JsZUhSbGJtUnpJRU5zYVdWdWRFSmhjMlZrVTJWeWRtbGpaVHhjYmlBZ1FYaHBiM05KYm5OMFlXNWpaU3hjYmlBZ1MybGlZVzVoVTJWMGRYQkRiMjVtYVdkY2JqNGdlMXh1SUNCaGMzbHVZeUJwYm1sMGFXRnNhWHBsS0Z4dUlDQWdJQzR1TG1GeVozTTZJRTFoZVdKbFEyOXVkR1Y0ZEhWaGJFRnlaenhoYm5rK1hHNGdJQ2s2SUZCeWIyMXBjMlU4ZXlCamIyNW1hV2M2SUV0cFltRnVZVk5sZEhWd1EyOXVabWxuT3lCamJHbGxiblE2SUVGNGFXOXpTVzV6ZEdGdVkyVWdmVDRnZTF4dUlDQWdJR052Ym5OMElIc2dZM1I0UVhKbmN5QjlJRDBnS0Z4dUlDQWdJQ0FnWVhkaGFYUWdkR2hwY3k1c2IyZERkSGdvWVhKbmN5d2dYQ0pwYm1sMGFXRnNhWHBsWENJc0lIUnlkV1VwWEc0Z0lDQWdLUzVtYjNJb2RHaHBjeTVwYm1sMGFXRnNhWHBsS1R0Y2JpQWdJQ0JqYjI1emRDQmpiMjVtYVdjZ1BTQmpkSGhCY21keld6QmRJR0Z6SUV0cFltRnVZVk5sZEhWd1EyOXVabWxuTzF4dUlDQWdJSFJvYVhNdVgyTnZibVpwWnlBOUlHTnZibVpwWnp0Y2JpQWdJQ0JqYjI1emRDQmpiR2xsYm5RZ1BTQjBhR2x6TG1OeVpXRjBaVWgwZEhCRGJHbGxiblFvWTI5dVptbG5LVHRjYmlBZ0lDQjBhR2x6TGw5amJHbGxiblFnUFNCamJHbGxiblE3WEc0Z0lDQWdjbVYwZFhKdUlIc2dZMjl1Wm1sbkxDQmpiR2xsYm5RZ2ZUdGNiaUFnZlZ4dVhHNGdJR0Z6ZVc1aklHeHZaMmx1Vkc5TGFXSmhibUVvWEc0Z0lDQWdkWE5sY201aGJXVTZJSE4wY21sdVp5QjhJSFZ1WkdWbWFXNWxaQ3hjYmlBZ0lDQndZWE56ZDI5eVpEb2djM1J5YVc1bklId2dkVzVrWldacGJtVmtMRnh1SUNBZ0lDNHVMbUZ5WjNNNklFMWhlV0psUTI5dWRHVjRkSFZoYkVGeVp6eGhibmsrWEc0Z0lDazZJRkJ5YjIxcGMyVThjM1J5YVc1blcxMGdmQ0IxYm1SbFptbHVaV1ErSUh0Y2JpQWdJQ0JqYjI1emRDQjdJR04wZUVGeVozTWdmU0E5SUNoY2JpQWdJQ0FnSUdGM1lXbDBJSFJvYVhNdWJHOW5RM1I0S0dGeVozTXNJRndpYkc5bmFXNVViMHRwWW1GdVlWd2lMQ0IwY25WbEtWeHVJQ0FnSUNrdVptOXlLSFJvYVhNdWJHOW5hVzVVYjB0cFltRnVZU2s3WEc0Z0lDQWdZMjl1YzNRZ1kyOXVabWxuSUQwZ2RHaHBjeTVqYjI1bWFXYzdYRzRnSUNBZ1kyOXVjM1FnWTNKbFpHVnVkR2xoYkhNZ1BTQjdYRzRnSUNBZ0lDQjFjMlZ5Ym1GdFpUb2dkWE5sY201aGJXVWdQejhnWTI5dVptbG5MbUZrYldsdVFYQnBWWE5sY2o4dWRYTmxjbTVoYldVc1hHNGdJQ0FnSUNCd1lYTnpkMjl5WkRvZ2NHRnpjM2R2Y21RZ1B6OGdZMjl1Wm1sbkxtRmtiV2x1UVhCcFZYTmxjajh1Y0dGemMzZHZjbVFzWEc0Z0lDQWdmVHRjYmlBZ0lDQnBaaUFvSVdOeVpXUmxiblJwWVd4ekxuVnpaWEp1WVcxbElIeDhJQ0ZqY21Wa1pXNTBhV0ZzY3k1d1lYTnpkMjl5WkNrZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFSmhaRkpsY1hWbGMzUkZjbkp2Y2loY0lrdHBZbUZ1WVNCc2IyZHBiaUJ5WlhGMWFYSmxjeUJqY21Wa1pXNTBhV0ZzYzF3aUtUdGNiaUFnSUNCOVhHNWNiaUFnSUNCamIyNXpkQ0J5WlhOd2IyNXpaU0E5SUdGM1lXbDBJSFJvYVhNdWNtVnhkV1Z6ZENoY2JpQWdJQ0FnSUZ3aVVFOVRWRndpTEZ4dUlDQWdJQ0FnWUNSN1kyOXVabWxuTG5CeWIzUnZZMjlzZlRvdkx5UjdZMjl1Wm1sbkxtaHZjM1I5TDJsdWRHVnlibUZzTDNObFkzVnlhWFI1TDJ4dloybHVZQ3hjYmlBZ0lDQWdJSHRjYmlBZ0lDQWdJQ0FnY0hKdmRtbGtaWEpVZVhCbE9pQmNJbUpoYzJsalhDSXNYRzRnSUNBZ0lDQWdJSEJ5YjNacFpHVnlUbUZ0WlRvZ1hDSmlZWE5wWTF3aUxGeHVJQ0FnSUNBZ0lDQmpkWEp5Wlc1MFZWSk1PaUJjSWk5c2IyZHBibHdpTEZ4dUlDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUhWdVpHVm1hVzVsWkN4Y2JpQWdJQ0FnSUh0Y2JpQWdJQ0FnSUNBZ1lYVjBhRG9nWTNKbFpHVnVkR2xoYkhNc1hHNGdJQ0FnSUNBZ0lHaGxZV1JsY25NNklIdGNiaUFnSUNBZ0lDQWdJQ0JjSW10aWJpMTRjM0ptWENJNklGd2lkSEoxWlZ3aUxGeHVJQ0FnSUNBZ0lDQWdJRndpWTI5dWRHVnVkQzEwZVhCbFhDSTZJRndpWVhCd2JHbGpZWFJwYjI0dmFuTnZibHdpTEZ4dUlDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ0lDQjNhWFJvUTNKbFpHVnVkR2xoYkhNNklIUnlkV1VzWEc0Z0lDQWdJQ0FnSUdoMGRIQnpRV2RsYm5RNklHNWxkeUJvZEhSd2N5NUJaMlZ1ZENoN1hHNGdJQ0FnSUNBZ0lDQWdjbVZxWldOMFZXNWhkWFJvYjNKcGVtVmtPaUFvS0hSb2FYTXVZMjl1Wm1sbklHRnpJR0Z1ZVNrdWFYTlFjbTlrZFdOMGFXOXVLQ2twTEZ4dUlDQWdJQ0FnSUNCOUtTeGNiaUFnSUNBZ0lIMHNYRzRnSUNBZ0lDQXlNREFzWEc0Z0lDQWdJQ0F1TGk1amRIaEJjbWR6WEc0Z0lDQWdLVHRjYmx4dUlDQWdJR2xtSUNoeVpYTndiMjV6WlM1emRHRjBkWE1nUGowZ016QXdLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQnRaWE56WVdkbElEMGdZRXRwWW1GdVlTQnNiMmRwYmlCbVlXbHNaV1E2SUNSN2NtVnpjRzl1YzJVdWMzUmhkSFZ6VkdWNGRIMWdPMXh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRUpoWkZKbGNYVmxjM1JGY25KdmNpaHRaWE56WVdkbEtUdGNiaUFnSUNCOVhHNWNiaUFnSUNCamIyNXpkQ0J6WlhSRGIyOXJhV1VnUFNCeVpYTndiMjV6WlM1b1pXRmtaWEp6VzF3aWMyVjBMV052YjJ0cFpWd2lYU0JoY3lCemRISnBibWRiWFNCOElIVnVaR1ZtYVc1bFpEdGNiaUFnSUNCcFppQW9JWE5sZEVOdmIydHBaVDh1YkdWdVozUm9LU0J5WlhSMWNtNGdkVzVrWldacGJtVmtPMXh1SUNBZ0lISmxkSFZ5YmlCelpYUkRiMjlyYVdVN1hHNGdJSDFjYmx4dUlDQmhjM2x1WXlCc2IyZHZkWFFvWEc0Z0lDQWdkWE5sY2pvZ1MybGlZVzVoVlhObGNpeGNiaUFnSUNBdUxpNWhjbWR6T2lCTllYbGlaVU52Ym5SbGVIUjFZV3hCY21jOFlXNTVQbHh1SUNBcE9pQlFjbTl0YVhObFBIWnZhV1ErSUh0Y2JpQWdJQ0JqYjI1emRDQjdJR04wZUVGeVozTWdmU0E5SUNoY2JpQWdJQ0FnSUdGM1lXbDBJSFJvYVhNdWJHOW5RM1I0S0dGeVozTXNJRndpYkc5bmIzVjBYQ0lzSUhSeWRXVXBYRzRnSUNBZ0tTNW1iM0lvZEdocGN5NXNiMmR2ZFhRcE8xeHVJQ0FnSUdGM1lXbDBJSFJvYVhNdWNtVnhkV1Z6ZENoY2JpQWdJQ0FnSUZ3aVVFOVRWRndpTEZ4dUlDQWdJQ0FnWUNSN2RHaHBjeTVqYjI1bWFXY3VjSEp2ZEc5amIyeDlPaTh2Skh0MGFHbHpMbU52Ym1acFp5NW9iM04wZlM5c2IyZHZkWFJnTEZ4dUlDQWdJQ0FnZFc1a1pXWnBibVZrTEZ4dUlDQWdJQ0FnZFhObGNpeGNiaUFnSUNBZ0lIdGNiaUFnSUNBZ0lDQWdhR1ZoWkdWeWN6b2dleUJjSW10aWJpMTRjM0ptWENJNklGd2lkSEoxWlZ3aUlIMHNYRzRnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdNakF3TEZ4dUlDQWdJQ0FnTGk0dVkzUjRRWEpuYzF4dUlDQWdJQ2s3WEc0Z0lIMWNibHh1SUNCd2NtOTBaV04wWldRZ2NHRnljMlZGY25KdmNpaGxjbkp2Y2pvZ1JYSnliM0lwT2lCRmNuSnZjaUI3WEc0Z0lDQWdZMjl1YzNRZ2JXVnpjMkZuWlNBOUlHVnljbTl5TG0xbGMzTmhaMlVnZkh3Z1pYSnliM0l1Ym1GdFpTQjhmQ0JjSWxWdWEyNXZkMjRnWlhKeWIzSmNJanRjYmlBZ0lDQmpiMjV6ZENCc2IzZGxjazFsYzNOaFoyVWdQU0J0WlhOellXZGxMblJ2VEc5M1pYSkRZWE5sS0NrN1hHNWNiaUFnSUNCcFppQW9iRzkzWlhKTlpYTnpZV2RsTG1sdVkyeDFaR1Z6S0Z3aWJtOTBJR1p2ZFc1a1hDSXBJSHg4SUd4dmQyVnlUV1Z6YzJGblpTNXBibU5zZFdSbGN5aGNJalF3TkZ3aUtTa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHNWxkeUJPYjNSR2IzVnVaRVZ5Y205eUtHMWxjM05oWjJVcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdsbUlDaHNiM2RsY2sxbGMzTmhaMlV1YVc1amJIVmtaWE1vWENKaGJISmxZV1I1SUdWNGFYTjBjMXdpS1NCOGZDQnNiM2RsY2sxbGMzTmhaMlV1YVc1amJIVmtaWE1vWENKamIyNW1iR2xqZEZ3aUtTQjhmQ0JzYjNkbGNrMWxjM05oWjJVdWFXNWpiSFZrWlhNb1hDSTBNRGxjSWlrcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCdVpYY2dRMjl1Wm14cFkzUkZjbkp2Y2lodFpYTnpZV2RsS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JwWmlBb2JHOTNaWEpOWlhOellXZGxMbWx1WTJ4MVpHVnpLRndpYVc1MllXeHBaRndpS1NCOGZDQnNiM2RsY2sxbGMzTmhaMlV1YVc1amJIVmtaWE1vWENKaVlXUWdjbVZ4ZFdWemRGd2lLU0I4ZkNCc2IzZGxjazFsYzNOaFoyVXVhVzVqYkhWa1pYTW9YQ0kwTURCY0lpa3BJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnVaWGNnUW1Ga1VtVnhkV1Z6ZEVWeWNtOXlLRzFsYzNOaFoyVXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHbG1JQ2hzYjNkbGNrMWxjM05oWjJVdWFXNWpiSFZrWlhNb1hDSjFibUYxZEdodmNtbDZaV1JjSWlrZ2ZId2diRzkzWlhKTlpYTnpZV2RsTG1sdVkyeDFaR1Z6S0Z3aU5EQXhYQ0lwS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnYm1WM0lFNXZkRVp2ZFc1a1JYSnliM0lvYldWemMyRm5aU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdhV1lnS0d4dmQyVnlUV1Z6YzJGblpTNXBibU5zZFdSbGN5aGNJbVp2Y21KcFpHUmxibHdpS1NCOGZDQnNiM2RsY2sxbGMzTmhaMlV1YVc1amJIVmtaWE1vWENJME1ETmNJaWtwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ1WlhjZ1RtOTBSbTkxYm1SRmNuSnZjaWh0WlhOellXZGxLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnlaWFIxY200Z2JtVjNJRWx1ZEdWeWJtRnNSWEp5YjNJb2JXVnpjMkZuWlNrN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElHTnlaV0YwWlVoMGRIQkRiR2xsYm5Rb1kyOXVabWxuT2lCTGFXSmhibUZUWlhSMWNFTnZibVpwWnlrNklFRjRhVzl6U1c1emRHRnVZMlVnZTF4dUlDQWdJSEpsZEhWeWJpQkJlR2x2Y3k1amNtVmhkR1VvZTF4dUlDQWdJQ0FnWW1GelpWVlNURG9nWUNSN1kyOXVabWxuTG5CeWIzUnZZMjlzZlRvdkx5UjdZMjl1Wm1sbkxtaHZjM1I5WUN4Y2JpQWdJQ0FnSUhaaGJHbGtZWFJsVTNSaGRIVnpPaUFvS1NBOVBpQjBjblZsTEZ4dUlDQWdJQ0FnYUhSMGNITkJaMlZ1ZERvZ2JtVjNJR2gwZEhCekxrRm5aVzUwS0h0Y2JpQWdJQ0FnSUNBZ2NtVnFaV04wVlc1aGRYUm9iM0pwZW1Wa09pQW9LSFJvYVhNdVkyOXVabWxuSUdGeklHRnVlU2t1YVhOUWNtOWtkV04wYVc5dUtDa3BMRnh1SUNBZ0lDQWdmU2tzWEc0Z0lDQWdmU2s3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUdGemVXNWpJSEpsY1hWbGMzUW9YRzRnSUNBZ2JXVjBhRzlrT2lCY0lrZEZWRndpSUh3Z1hDSlFUMU5VWENJZ2ZDQmNJbEJWVkZ3aUlId2dYQ0pFUlV4RlZFVmNJaXhjYmlBZ0lDQjFjbXc2SUhOMGNtbHVaeXhjYmlBZ0lDQndZWGxzYjJGa09pQjFibXR1YjNkdUxGeHVJQ0FnSUdGd2FWVnpaWEk2SUV0cFltRnVZVlZ6WlhJZ2ZDQjFibVJsWm1sdVpXUXNYRzRnSUNBZ1pYaDBjbUU2SUZKbFkyOXlaRHh6ZEhKcGJtY3NJR0Z1ZVQ0c1hHNGdJQ0FnYzNWalkyVnpjME52WkdVNklHNTFiV0psY2l4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJEYjI1MFpYaDBkV0ZzUVhKbmN6eGhibmsrWEc0Z0lDazZJRkJ5YjIxcGMyVThZVzU1UGlCN1hHNGdJQ0FnZEdocGN5NXNiMmREZEhnb1lYSm5jeXdnZEdocGN5NXlaWEYxWlhOMEtUdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NWpiR2xsYm5RdWNtVnhkV1Z6ZENoN1hHNGdJQ0FnSUNCdFpYUm9iMlFzWEc0Z0lDQWdJQ0IxY213c1hHNGdJQ0FnSUNCa1lYUmhPbHh1SUNBZ0lDQWdJQ0J3WVhsc2IyRmtJRDA5UFNCMWJtUmxabWx1WldSY2JpQWdJQ0FnSUNBZ0lDQS9JSFZ1WkdWbWFXNWxaRnh1SUNBZ0lDQWdJQ0FnSURvZ2RIbHdaVzltSUhCaGVXeHZZV1FnUFQwOUlGd2ljM1J5YVc1blhDSmNiaUFnSUNBZ0lDQWdJQ0FnSUQ4Z2NHRjViRzloWkZ4dUlDQWdJQ0FnSUNBZ0lDQWdPaUJLVTA5T0xuTjBjbWx1WjJsbWVTaHdZWGxzYjJGa0tTeGNiaUFnSUNBZ0lHRjFkR2c2SUdGd2FWVnpaWEpjYmlBZ0lDQWdJQ0FnUHlCN0lIVnpaWEp1WVcxbE9pQmhjR2xWYzJWeUxuVnpaWEp1WVcxbExDQndZWE56ZDI5eVpEb2dZWEJwVlhObGNpNXdZWE56ZDI5eVpDQjlYRzRnSUNBZ0lDQWdJRG9nZFc1a1pXWnBibVZrTEZ4dUlDQWdJQ0FnZG1Gc2FXUmhkR1ZUZEdGMGRYTTZJQ2dwSUQwK0lIUnlkV1VzWEc0Z0lDQWdJQ0JvZEhSd2MwRm5aVzUwT2lCdVpYY2dhSFIwY0hNdVFXZGxiblFvZTF4dUlDQWdJQ0FnSUNCeVpXcGxZM1JWYm1GMWRHaHZjbWw2WldRNklDZ29kR2hwY3k1amIyNW1hV2NnWVhNZ1lXNTVLUzVwYzFCeWIyUjFZM1JwYjI0b0tTa3NYRzRnSUNBZ0lDQjlLU3hjYmlBZ0lDQWdJQzR1TG1WNGRISmhMRnh1SUNBZ0lIMHBPMXh1SUNCOVhHNTlYRzRpWFgwPSJdfQ==
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2liYW5hQXV0aFNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMva2liYW5hL3NlcnZpY2VzL0tpYmFuYUF1dGhTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxlQUFlLEVBQ2YsYUFBYSxFQUNiLGFBQWEsRUFDYixhQUFhLEdBQ2QsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRCxPQUFPLEtBQXdCLE1BQU0sT0FBTyxDQUFDO0FBQzdDLE9BQU8sS0FBSyxLQUFLLE1BQU0sWUFBWSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxxQkFBa0I7QUFFdEQsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGtCQUd0QztJQUNDLEtBQUssQ0FBQyxVQUFVLENBQ2QsR0FBRyxJQUE2QjtRQUVoQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FDbEIsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQzVDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN2QixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFzQixDQUFDO1FBQy9DLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ3RCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxLQUFLLENBQUMsYUFBYSxDQUNqQixRQUE0QixFQUM1QixRQUE0QixFQUM1QixHQUFHLElBQTZCO1FBRWhDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxD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a0IsRUFBRSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxNQUFhLENBQUMsQ0FBQzthQUNwRSxDQUFDO1NBQ0gsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLEtBQUssQ0FBQyxPQUFPLENBQ25CLE1BQXlDLEVBQ3pDLEdBQVcsRUFDWCxPQUFnQixFQUNoQixPQUErQixFQUMvQixLQUEwQixFQUMxQixXQUFtQixFQUNuQixHQUFHLElBQXlCO1FBRTVCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO1lBQ3pCLE1BQU07WUFDTixHQUFHO1lBQ0gsSUFBSSxFQUNGLE9BQU8sS0FBSyxTQUFTO2dCQUNuQixDQUFDLENBQUMsU0FBUztnQkFDWCxDQUFDLENBQUMsT0FBTyxPQUFPLEtBQUssUUFBUTtvQkFDM0IsQ0FBQyxDQUFDLE9BQU87b0JBQ1QsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDO1lBQy9CLElBQUksRUFBRSxPQUFPO2dCQUNYLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFO2dCQUM1RCxDQUFDLENBQUMsU0FBUztZQUNiLGNBQWMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJO1lBQzFCLFVBQVUsRUFBRSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUM7Z0JBQzFCLGtCQUFrQixFQUFFLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLE1BQWEsQ0FBQyxDQUFDO2FBQ3BFLENBQUM7WUFDRixHQUFHLEtBQUs7U0FDVCxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYWRSZXF1ZXN0RXJyb3IsXG4gIENvbmZsaWN0RXJyb3IsXG4gIEludGVybmFsRXJyb3IsXG4gIE5vdEZvdW5kRXJyb3IsXG59IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgQ29udGV4dHVhbEFyZ3MsIE1heWJlQ29udGV4dHVhbEFyZyB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgQ2xpZW50QmFzZWRTZXJ2aWNlIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgdHlwZSB7IEtpYmFuYVNldHVwQ29uZmlnLCBLaWJhbmFVc2VyIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgQXhpb3MsIHsgQXhpb3NJbnN0YW5jZSB9IGZyb20gXCJheGlvc1wiO1xuaW1wb3J0ICogYXMgaHR0cHMgZnJvbSBcIm5vZGU6aHR0cHNcIjtcbmltcG9ydCB7IHJlc29sdmVLaWJhbmFJc1Byb2R1Y3Rpb24gfSBmcm9tIFwiLi9ydW50aW1lXCI7XG5cbmV4cG9ydCBjbGFzcyBLaWJhbmFBdXRoU2VydmljZSBleHRlbmRzIENsaWVudEJhc2VkU2VydmljZTxcbiAgQXhpb3NJbnN0YW5jZSxcbiAgS2liYW5hU2V0dXBDb25maWdcbj4ge1xuICBhc3luYyBpbml0aWFsaXplKFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8eyBjb25maWc6IEtpYmFuYVNldHVwQ29uZmlnOyBjbGllbnQ6IEF4aW9zSW5zdGFuY2UgfT4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJpbml0aWFsaXplXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5pbml0aWFsaXplKTtcbiAgICBjb25zdCBjb25maWcgPSBjdHhBcmdzWzBdIGFzIEtpYmFuYVNldHVwQ29uZmlnO1xuICAgIHRoaXMuX2NvbmZpZyA9IGNvbmZpZztcbiAgICBjb25zdCBjbGllbnQgPSB0aGlzLmNyZWF0ZUh0dHBDbGllbnQoY29uZmlnKTtcbiAgICB0aGlzLl9jbGllbnQgPSBjbGllbnQ7XG4gICAgcmV0dXJuIHsgY29uZmlnLCBjbGllbnQgfTtcbiAgfVxuXG4gIGFzeW5jIGxvZ2luVG9LaWJhbmEoXG4gICAgdXNlcm5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICBwYXNzd29yZDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8c3RyaW5nW10gfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwibG9naW5Ub0tpYmFuYVwiLCB0cnVlKVxuICAgICkuZm9yKHRoaXMubG9naW5Ub0tpYmFuYSk7XG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5jb25maWc7XG4gICAgY29uc3QgY3JlZGVudGlhbHMgPSB7XG4gICAgICB1c2VybmFtZTogdXNlcm5hbWUgPz8gY29uZmlnLmFkbWluQXBpVXNlcj8udXNlcm5hbWUsXG4gICAgICBwYXNzd29yZDogcGFzc3dvcmQgPz8gY29uZmlnLmFkbWluQXBpVXNlcj8ucGFzc3dvcmQsXG4gICAgfTtcbiAgICBpZiAoIWNyZWRlbnRpYWxzLnVzZXJuYW1lIHx8ICFjcmVkZW50aWFscy5wYXNzd29yZCkge1xuICAgICAgdGhyb3cgbmV3IEJhZFJlcXVlc3RFcnJvcihcIktpYmFuYSBsb2dpbiByZXF1aXJlcyBjcmVkZW50aWFsc1wiKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMucmVxdWVzdChcbiAgICAgIFwiUE9TVFwiLFxuICAgICAgYCR7Y29uZmlnLnByb3RvY29sfTovLyR7Y29uZmlnLmhvc3R9L2ludGVybmFsL3NlY3VyaXR5L2xvZ2luYCxcbiAgICAgIHtcbiAgICAgICAgcHJvdmlkZXJUeXBlOiBcImJhc2ljXCIsXG4gICAgICAgIHByb3ZpZGVyTmFtZTogXCJiYXNpY1wiLFxuICAgICAgICBjdXJyZW50VVJMOiBcIi9sb2dpblwiLFxuICAgICAgfSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHtcbiAgICAgICAgYXV0aDogY3JlZGVudGlhbHMsXG4gICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICBcImtibi14c3JmXCI6IFwidHJ1ZVwiLFxuICAgICAgICAgIFwiY29udGVudC10eXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgICAgICB9LFxuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAgIGh0dHBzQWdlbnQ6IG5ldyBodHRwcy5BZ2VudCh7XG4gICAgICAgICAgcmVqZWN0VW5hdXRob3JpemVkOiAocmVzb2x2ZUtpYmFuYUlzUHJvZHVjdGlvbih0aGlzLmNvbmZpZyBhcyBhbnkpKSxcbiAgICAgICAgfSksXG4gICAgICB9LFxuICAgICAgMjAwLFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG5cbiAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID49IDMwMCkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBLaWJhbmEgbG9naW4gZmFpbGVkOiAke3Jlc3BvbnNlLnN0YXR1c1RleHR9YDtcbiAgICAgIHRocm93IG5ldyBCYWRSZXF1ZXN0RXJyb3IobWVzc2FnZSk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2V0Q29va2llID0gcmVzcG9uc2UuaGVhZGVyc1tcInNldC1jb29raWVcIl0gYXMgc3RyaW5nW10gfCB1bmRlZmluZWQ7XG4gICAgaWYgKCFzZXRDb29raWU/Lmxlbmd0aCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4gc2V0Q29va2llO1xuICB9XG5cbiAgYXN5bmMgbG9nb3V0KFxuICAgIHVzZXI6IEtpYmFuYVVzZXIsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImxvZ291dFwiLCB0cnVlKVxuICAgICkuZm9yKHRoaXMubG9nb3V0KTtcbiAgICBhd2FpdCB0aGlzLnJlcXVlc3QoXG4gICAgICBcIlBPU1RcIixcbiAgICAgIGAke3RoaXMuY29uZmlnLnByb3RvY29sfTovLyR7dGhpcy5jb25maWcuaG9zdH0vbG9nb3V0YCxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHVzZXIsXG4gICAgICB7XG4gICAgICAgIGhlYWRlcnM6IHsgXCJrYm4teHNyZlwiOiBcInRydWVcIiB9LFxuICAgICAgfSxcbiAgICAgIDIwMCxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIHBhcnNlRXJyb3IoZXJyb3I6IEVycm9yKTogRXJyb3Ige1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnJvci5tZXNzYWdlIHx8IGVycm9yLm5hbWUgfHwgXCJVbmtub3duIGVycm9yXCI7XG4gICAgY29uc3QgbG93ZXJNZXNzYWdlID0gbWVzc2FnZS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIm5vdCBmb3VuZFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDRcIikpIHtcbiAgICAgIHJldHVybiBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICB9XG5cbiAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiYWxyZWFkeSBleGlzdHNcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiY29uZmxpY3RcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDA5XCIpKSB7XG4gICAgICByZXR1cm4gbmV3IENvbmZsaWN0RXJyb3IobWVzc2FnZSk7XG4gICAgfVxuXG4gICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImludmFsaWRcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiYmFkIHJlcXVlc3RcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDAwXCIpKSB7XG4gICAgICByZXR1cm4gbmV3IEJhZFJlcXVlc3RFcnJvcihtZXNzYWdlKTtcbiAgICB9XG5cbiAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwidW5hdXRob3JpemVkXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwMVwiKSkge1xuICAgICAgcmV0dXJuIG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJmb3JiaWRkZW5cIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDAzXCIpKSB7XG4gICAgICByZXR1cm4gbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBJbnRlcm5hbEVycm9yKG1lc3NhZ2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVIdHRwQ2xpZW50KGNvbmZpZzogS2liYW5hU2V0dXBDb25maWcpOiBBeGlvc0luc3RhbmNlIHtcbiAgICByZXR1cm4gQXhpb3MuY3JlYXRlKHtcbiAgICAgIGJhc2VVUkw6IGAke2NvbmZpZy5wcm90b2NvbH06Ly8ke2NvbmZpZy5ob3N0fWAsXG4gICAgICB2YWxpZGF0ZVN0YXR1czogKCkgPT4gdHJ1ZSxcbiAgICAgIGh0dHBzQWdlbnQ6IG5ldyBodHRwcy5BZ2VudCh7XG4gICAgICAgIHJlamVjdFVuYXV0aG9yaXplZDogKHJlc29sdmVLaWJhbmFJc1Byb2R1Y3Rpb24odGhpcy5jb25maWcgYXMgYW55KSksXG4gICAgICB9KSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVxdWVzdChcbiAgICBtZXRob2Q6IFwiR0VUXCIgfCBcIlBPU1RcIiB8IFwiUFVUXCIgfCBcIkRFTEVURVwiLFxuICAgIHVybDogc3RyaW5nLFxuICAgIHBheWxvYWQ6IHVua25vd24sXG4gICAgYXBpVXNlcjogS2liYW5hVXNlciB8IHVuZGVmaW5lZCxcbiAgICBleHRyYTogUmVjb3JkPHN0cmluZywgYW55PixcbiAgICBzdWNjZXNzQ29kZTogbnVtYmVyLFxuICAgIC4uLmFyZ3M6IENvbnRleHR1YWxBcmdzPGFueT5cbiAgKTogUHJvbWlzZTxhbnk+IHtcbiAgICB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnJlcXVlc3QpO1xuICAgIHJldHVybiB0aGlzLmNsaWVudC5yZXF1ZXN0KHtcbiAgICAgIG1ldGhvZCxcbiAgICAgIHVybCxcbiAgICAgIGRhdGE6XG4gICAgICAgIHBheWxvYWQgPT09IHVuZGVmaW5lZFxuICAgICAgICAgID8gdW5kZWZpbmVkXG4gICAgICAgICAgOiB0eXBlb2YgcGF5bG9hZCA9PT0gXCJzdHJpbmdcIlxuICAgICAgICAgICAgPyBwYXlsb2FkXG4gICAgICAgICAgICA6IEpTT04uc3RyaW5naWZ5KHBheWxvYWQpLFxuICAgICAgYXV0aDogYXBpVXNlclxuICAgICAgICA/IHsgdXNlcm5hbWU6IGFwaVVzZXIudXNlcm5hbWUsIHBhc3N3b3JkOiBhcGlVc2VyLnBhc3N3b3JkIH1cbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICB2YWxpZGF0ZVN0YXR1czogKCkgPT4gdHJ1ZSxcbiAgICAgIGh0dHBzQWdlbnQ6IG5ldyBodHRwcy5BZ2VudCh7XG4gICAgICAgIHJlamVjdFVuYXV0aG9yaXplZDogKHJlc29sdmVLaWJhbmFJc1Byb2R1Y3Rpb24odGhpcy5jb25maWcgYXMgYW55KSksXG4gICAgICB9KSxcbiAgICAgIC4uLmV4dHJhLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2liYW5hQXV0aFNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJLaWJhbmFBdXRoU2VydmljZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyREFBd0c7QUFDeEcseUNBQW9EO0FBQ3BELGtEQUEwQjtBQUMxQixrREFBb0M7QUFDcEMsNkNBQXlEO0FBQ3pELE1BQWEsaUJBQWtCLFNBQVEseUJBQWtCO0lBQ3JELEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJO1FBQ3BCLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN2RixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDdEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ3RCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUNELEtBQUssQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxHQUFHLElBQUk7UUFDM0MsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzdGLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDM0IsTUFBTSxXQUFXLEdB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SyxFQUFFLFdBQVcsRUFBRSxHQUFHLElBQUk7UUFDcEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7WUFDdkIsTUFBTTtZQUNOLEdBQUc7WUFDSCxJQUFJLEVBQUUsT0FBTyxLQUFLLFNBQVM7Z0JBQ3ZCLENBQUMsQ0FBQyxTQUFTO2dCQUNYLENBQUMsQ0FBQyxPQUFPLE9BQU8sS0FBSyxRQUFRO29CQUN6QixDQUFDLENBQUMsT0FBTztvQkFDVCxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7WUFDakMsSUFBSSxFQUFFLE9BQU87Z0JBQ1QsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUU7Z0JBQzVELENBQUMsQ0FBQyxTQUFTO1lBQ2YsY0FBYyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUk7WUFDMUIsVUFBVSxFQUFFLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQztnQkFDeEIsa0JBQWtCLEVBQUUsQ0FBQyxJQUFBLHNDQUF5QixFQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUMvRCxDQUFDO1lBQ0YsR0FBRyxLQUFLO1NBQ1gsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNKO0FBbEdELDhDQWtHQztBQUNELHNpWkFBc2laIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFkUmVxdWVzdEVycm9yLCBDb25mbGljdEVycm9yLCBJbnRlcm5hbEVycm9yLCBOb3RGb3VuZEVycm9yLCB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgQ2xpZW50QmFzZWRTZXJ2aWNlIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgQXhpb3MgZnJvbSBcImF4aW9zXCI7XG5pbXBvcnQgKiBhcyBodHRwcyBmcm9tIFwibm9kZTpodHRwc1wiO1xuaW1wb3J0IHsgcmVzb2x2ZUtpYmFuYUlzUHJvZHVjdGlvbiB9IGZyb20gXCIuL3J1bnRpbWUuanNcIjtcbmV4cG9ydCBjbGFzcyBLaWJhbmFBdXRoU2VydmljZSBleHRlbmRzIENsaWVudEJhc2VkU2VydmljZSB7XG4gICAgYXN5bmMgaW5pdGlhbGl6ZSguLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiaW5pdGlhbGl6ZVwiLCB0cnVlKSkuZm9yKHRoaXMuaW5pdGlhbGl6ZSk7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IGN0eEFyZ3NbMF07XG4gICAgICAgIHRoaXMuX2NvbmZpZyA9IGNvbmZpZztcbiAgICAgICAgY29uc3QgY2xpZW50ID0gdGhpcy5jcmVhdGVIdHRwQ2xpZW50KGNvbmZpZyk7XG4gICAgICAgIHRoaXMuX2NsaWVudCA9IGNsaWVudDtcbiAgICAgICAgcmV0dXJuIHsgY29uZmlnLCBjbGllbnQgfTtcbiAgICB9XG4gICAgYXN5bmMgbG9naW5Ub0tpYmFuYSh1c2VybmFtZSwgcGFzc3dvcmQsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJsb2dpblRvS2liYW5hXCIsIHRydWUpKS5mb3IodGhpcy5sb2dpblRvS2liYW5hKTtcbiAgICAgICAgY29uc3QgY29uZmlnID0gdGhpcy5jb25maWc7XG4gICAgICAgIGNvbnN0IGNyZWRlbnRpYWxzID0ge1xuICAgICAgICAgICAgdXNlcm5hbWU6IHVzZXJuYW1lID8/IGNvbmZpZy5hZG1pbkFwaVVzZXI/LnVzZXJuYW1lLFxuICAgICAgICAgICAgcGFzc3dvcmQ6IHBhc3N3b3JkID8/IGNvbmZpZy5hZG1pbkFwaVVzZXI/LnBhc3N3b3JkLFxuICAgICAgICB9O1xuICAgICAgICBpZiAoIWNyZWRlbnRpYWxzLnVzZXJuYW1lIHx8ICFjcmVkZW50aWFscy5wYXNzd29yZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEJhZFJlcXVlc3RFcnJvcihcIktpYmFuYSBsb2dpbiByZXF1aXJlcyBjcmVkZW50aWFsc1wiKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMucmVxdWVzdChcIlBPU1RcIiwgYCR7Y29uZmlnLnByb3RvY29sfTovLyR7Y29uZmlnLmhvc3R9L2ludGVybmFsL3NlY3VyaXR5L2xvZ2luYCwge1xuICAgICAgICAgICAgcHJvdmlkZXJUeXBlOiBcImJhc2ljXCIsXG4gICAgICAgICAgICBwcm92aWRlck5hbWU6IFwiYmFzaWNcIixcbiAgICAgICAgICAgIGN1cnJlbnRVUkw6IFwiL2xvZ2luXCIsXG4gICAgICAgIH0sIHVuZGVmaW5lZCwge1xuICAgICAgICAgICAgYXV0aDogY3JlZGVudGlhbHMsXG4gICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgXCJrYm4teHNyZlwiOiBcInRydWVcIixcbiAgICAgICAgICAgICAgICBcImNvbnRlbnQtdHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAgICAgICBodHRwc0FnZW50OiBuZXcgaHR0cHMuQWdlbnQoe1xuICAgICAgICAgICAgICAgIHJlamVjdFVuYXV0aG9yaXplZDogKHJlc29sdmVLaWJhbmFJc1Byb2R1Y3Rpb24odGhpcy5jb25maWcpKSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICB9LCAyMDAsIC4uLmN0eEFyZ3MpO1xuICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID49IDMwMCkge1xuICAgICAgICAgICAgY29uc3QgbWVzc2FnZSA9IGBLaWJhbmEgbG9naW4gZmFpbGVkOiAke3Jlc3BvbnNlLnN0YXR1c1RleHR9YDtcbiAgICAgICAgICAgIHRocm93IG5ldyBCYWRSZXF1ZXN0RXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2V0Q29va2llID0gcmVzcG9uc2UuaGVhZGVyc1tcInNldC1jb29raWVcIl07XG4gICAgICAgIGlmICghc2V0Q29va2llPy5sZW5ndGgpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICByZXR1cm4gc2V0Q29va2llO1xuICAgIH1cbiAgICBhc3luYyBsb2dvdXQodXNlciwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImxvZ291dFwiLCB0cnVlKSkuZm9yKHRoaXMubG9nb3V0KTtcbiAgICAgICAgYXdhaXQgdGhpcy5yZXF1ZXN0KFwiUE9TVFwiLCBgJHt0aGlzLmNvbmZpZy5wcm90b2NvbH06Ly8ke3RoaXMuY29uZmlnLmhvc3R9L2xvZ291dGAsIHVuZGVmaW5lZCwgdXNlciwge1xuICAgICAgICAgICAgaGVhZGVyczogeyBcImtibi14c3JmXCI6IFwidHJ1ZVwiIH0sXG4gICAgICAgIH0sIDIwMCwgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIHBhcnNlRXJyb3IoZXJyb3IpIHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGVycm9yLm1lc3NhZ2UgfHwgZXJyb3IubmFtZSB8fCBcIlVua25vd24gZXJyb3JcIjtcbiAgICAgICAgY29uc3QgbG93ZXJNZXNzYWdlID0gbWVzc2FnZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwibm90IGZvdW5kXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwNFwiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJhbHJlYWR5IGV4aXN0c1wiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJjb25mbGljdFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDlcIikpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgQ29uZmxpY3RFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiaW52YWxpZFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJiYWQgcmVxdWVzdFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDBcIikpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgQmFkUmVxdWVzdEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJ1bmF1dGhvcml6ZWRcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDAxXCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImZvcmJpZGRlblwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDNcIikpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IEludGVybmFsRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuICAgIGNyZWF0ZUh0dHBDbGllbnQoY29uZmlnKSB7XG4gICAgICAgIHJldHVybiBBeGlvcy5jcmVhdGUoe1xuICAgICAgICAgICAgYmFzZVVSTDogYCR7Y29uZmlnLnByb3RvY29sfTovLyR7Y29uZmlnLmhvc3R9YCxcbiAgICAgICAgICAgIHZhbGlkYXRlU3RhdHVzOiAoKSA9PiB0cnVlLFxuICAgICAgICAgICAgaHR0cHNBZ2VudDogbmV3IGh0dHBzLkFnZW50KHtcbiAgICAgICAgICAgICAgICByZWplY3RVbmF1dGhvcml6ZWQ6IChyZXNvbHZlS2liYW5hSXNQcm9kdWN0aW9uKHRoaXMuY29uZmlnKSksXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGFzeW5jIHJlcXVlc3QobWV0aG9kLCB1cmwsIHBheWxvYWQsIGFwaVVzZXIsIGV4dHJhLCBzdWNjZXNzQ29kZSwgLi4uYXJncykge1xuICAgICAgICB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnJlcXVlc3QpO1xuICAgICAgICByZXR1cm4gdGhpcy5jbGllbnQucmVxdWVzdCh7XG4gICAgICAgICAgICBtZXRob2QsXG4gICAgICAgICAgICB1cmwsXG4gICAgICAgICAgICBkYXRhOiBwYXlsb2FkID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIDogdHlwZW9mIHBheWxvYWQgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgICAgICAgICAgPyBwYXlsb2FkXG4gICAgICAgICAgICAgICAgICAgIDogSlNPTi5zdHJpbmdpZnkocGF5bG9hZCksXG4gICAgICAgICAgICBhdXRoOiBhcGlVc2VyXG4gICAgICAgICAgICAgICAgPyB7IHVzZXJuYW1lOiBhcGlVc2VyLnVzZXJuYW1lLCBwYXNzd29yZDogYXBpVXNlci5wYXNzd29yZCB9XG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB2YWxpZGF0ZVN0YXR1czogKCkgPT4gdHJ1ZSxcbiAgICAgICAgICAgIGh0dHBzQWdlbnQ6IG5ldyBodHRwcy5BZ2VudCh7XG4gICAgICAgICAgICAgICAgcmVqZWN0VW5hdXRob3JpemVkOiAocmVzb2x2ZUtpYmFuYUlzUHJvZHVjdGlvbih0aGlzLmNvbmZpZykpLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAuLi5leHRyYSxcbiAgICAgICAgfSk7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pUzJsaVlXNWhRWFYwYUZObGNuWnBZMlV1YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SXVMaTh1TGk4dUxpOHVMaTl6Y21NdmEybGlZVzVoTDNObGNuWnBZMlZ6TDB0cFltRnVZVUYxZEdoVFpYSjJhV05sTG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lKQlFVRkJMRTlCUVU4c1JVRkRUQ3hsUVVGbExFVkJRMllzWVVGQllTeEZRVU5pTEdGQlFXRXNSVUZEWWl4aFFVRmhMRWRCUTJRc1RVRkJUU3g1UWtGQmVVSXNRMEZCUXp0QlFVVnFReXhQUVVGUExFVkJRVVVzYTBKQlFXdENMRVZCUVVVc1RVRkJUU3huUWtGQlowSXNRMEZCUXp0QlFVVndSQ3hQUVVGUExFdEJRWGRDTEUxQlFVMHNUMEZCVHl4RFFVRkRPMEZCUXpkRExFOUJRVThzUzBGQlN5eExRVUZMTEUxQlFVMHNXVUZCV1N4RFFVRkRPMEZCUTNCRExFOUJRVThzUlVGQlJTeDVRa0ZCZVVJc1JVRkJSU3h4UWtGQmEwSTdRVUZGZEVRc1RVRkJUU3hQUVVGUExHbENRVUZyUWl4VFFVRlJMR3RDUVVkMFF6dEpRVU5ETEV0QlFVc3NRMEZCUXl4VlFVRlZMRU5CUTJRc1IwRkJSeXhKUVVFMlFqdFJRVVZvUXl4TlFVRk5MRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVWNzUTBGRGJFSXNUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeFpRVUZaTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUXpWRExFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJRenRSUVVOMlFpeE5RVUZOTEUxQlFVMHNSMEZCUnl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGelFpeERRVUZETzFGQlF5OURMRWxCUVVrc1EwRkJReXhQUVVGUExFZEJRVWNzVFVGQlRTeERRVUZETzFGQlEzUkNMRTFCUVUwc1RVRkJUU3hIUVVGSExFbEJRVWtzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dFJRVU0zUXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhIUVVGSExFMUJRVTBzUTBGQlF6dFJRVU4wUWl4UFFVRlBMRVZCUVVVc1RVRkJUU3hGUVVGRkxFMUJRVTBzUlVGQlJTeERRVUZETzBsQlF6VkNMRU5CUVVNN1NVRkZSQ3hMUVVGTExFTkJRVU1zWVVGQllTeERRVU5xUWl4UlFVRTBRaXhGUVVNMVFpeFJRVUUwUWl4RlFVTTFRaXhIUVVGSExFbEJRVFpDTzFGQlJXaERMRTFCUVUwc1JVRkJSU3hQUVVGUExFVkJRVVVzUjBGQlJ5eERRVU5zUWl4TlFVRk5MRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTEdWQlFXVXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkRMME1zUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGRE8xRkJRekZDTEUxQlFVMHNUVUZCVFN4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU03VVVGRE0wSXNUVUZCVFN4WFFVRlhMRWRCUVVjN1dVRkRiRUlzVVVGQlVTeEZRVUZGTEZGQlFWRXNTVUZCU1N4TlFVRk5MRU5CUVVNc1dVRkJXU3hGUVVGRkxGRkJRVkU3V1VGRGJrUXNVVUZCVVN4RlFVRkZMRkZCUVZFc1NVRkJTU3hOUVVGTkxFTkJRVU1zV1VGQldTeEZRVUZGTEZGQlFWRTdVMEZEY0VRc1EwRkJRenRSUVVOR0xFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlFVTXNVVUZCVVN4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExGRkJRVkVzUlVGQlJTeERRVUZETzFsQlEyNUVMRTFCUVUwc1NVRkJTU3hsUVVGbExFTkJRVU1zYlVOQlFXMURMRU5CUVVNc1EwRkJRenRSUVVOcVJTeERRVUZETzFGQlJVUXNUVUZCVFN4UlFVRlJMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zVDBGQlR5eERRVU5xUXl4TlFVRk5MRVZCUTA0c1IwRkJSeXhOUVVGTkxFTkJRVU1zVVVGQlVTeE5RVUZOTEUxQlFVMHNRMEZCUXl4SlFVRkpMREJDUVVFd1FpeEZRVU0zUkR0WlFVTkZMRmxCUVZrc1JVRkJSU3hQUVVGUE8xbEJRM0pDTEZsQlFWa3NSVUZCUlN4UFFVRlBPMWxCUTNKQ0xGVkJRVlVzUlVGQlJTeFJRVUZSTzFOQlEzSkNMRVZCUTBRc1UwRkJVeXhGUVVOVU8xbEJRMFVzU1VGQlNTeEZRVUZGTEZkQlFWYzdXVUZEYWtJc1QwRkJUeXhGUVVGRk8yZENRVU5RTEZWQlFWVXNSVUZCUlN4TlFVRk5PMmRDUVVOc1FpeGpRVUZqTEVWQlFVVXNhMEpCUVd0Q08yRkJRMjVETzFsQlEwUXNaVUZCWlN4RlFVRkZMRWxCUVVrN1dVRkRja0lzVlVGQlZTeEZRVUZGTEVsQlFVa3NTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJRenRuUWtGRE1VSXNhMEpCUVd0Q0xFVkJRVVVzUTBGQlF5eDVRa0ZCZVVJc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQllTeERRVUZETEVOQlFVTTdZVUZEY0VVc1EwRkJRenRUUVVOSUxFVkJRMFFzUjBGQlJ5eEZRVU5JTEVkQlFVY3NUMEZCVHl4RFFVTllMRU5CUVVNN1VVRkZSaXhKUVVGSkxGRkJRVkVzUTBGQlF5eE5RVUZOTEVsQlFVa3NSMEZCUnl4RlFVRkZMRU5CUVVNN1dVRkRNMElzVFVGQlRTeFBRVUZQTEVkQlFVY3NkMEpCUVhkQ0xGRkJRVkVzUTBGQlF5eFZRVUZWTEVWQlFVVXNRMEZCUXp0WlFVTTVSQ3hOUVVGTkxFbEJRVWtzWlVGQlpTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUTNKRExFTkJRVU03VVVGRlJDeE5RVUZOTEZOQlFWTXNSMEZCUnl4UlFVRlJMRU5CUVVNc1QwRkJUeXhEUVVGRExGbEJRVmtzUTBGQmVVSXNRMEZCUXp0UlFVTjZSU3hKUVVGSkxFTkJRVU1zVTBGQlV5eEZRVUZGTEUxQlFVMDdXVUZCUlN4UFFVRlBMRk5CUVZNc1EwRkJRenRSUVVONlF5eFBRVUZQTEZOQlFWTXNRMEZCUXp0SlFVTnVRaXhEUVVGRE8wbEJSVVFzUzBGQlN5eERRVUZETEUxQlFVMHNRMEZEVml4SlFVRm5RaXhGUVVOb1FpeEhRVUZITEVsQlFUWkNPMUZCUldoRExFMUJRVTBzUlVGQlJTeFBRVUZQTEVWQlFVVXNSMEZCUnl4RFFVTnNRaXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMRkZCUVZFc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGRGVFTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzFGQlEyNUNMRTFCUVUwc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGRGFFSXNUVUZCVFN4RlFVTk9MRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eFJRVUZSTEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxGTkJRVk1zUlVGRGRFUXNVMEZCVXl4RlFVTlVMRWxCUVVrc1JVRkRTanRaUVVORkxFOUJRVThzUlVGQlJTeEZRVUZGTEZWQlFWVXNSVUZCUlN4TlFVRk5MRVZCUVVVN1UwRkRhRU1zUlVGRFJDeEhRVUZITEVWQlEwZ3NSMEZCUnl4UFFVRlBMRU5CUTFnc1EwRkJRenRKUVVOS0xFTkJRVU03U1VGRlV5eFZRVUZWTEVOQlFVTXNTMEZCV1R0UlFVTXZRaXhOUVVGTkxFOUJRVThzUjBGQlJ5eExRVUZMTEVOQlFVTXNUMEZCVHl4SlFVRkpMRXRCUVVzc1EwRkJReXhKUVVGSkxFbEJRVWtzWlVGQlpTeERRVUZETzFGQlF5OUVMRTFCUVUwc1dVRkJXU3hIUVVGSExFOUJRVThzUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZCUXp0UlFVVXpReXhKUVVGSkxGbEJRVmtzUTBGQlF5eFJRVUZSTEVOQlFVTXNWMEZCVnl4RFFVRkRMRWxCUVVrc1dVRkJXU3hEUVVGRExGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZCUlN4RFFVRkRPMWxCUTNaRkxFOUJRVThzU1VGQlNTeGhRVUZoTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRjRU1zUTBGQlF6dFJRVVZFTEVsQlFVa3NXVUZCV1N4RFFVRkRMRkZCUVZFc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4SlFVRkpMRmxCUVZrc1EwRkJReXhSUVVGUkxFTkJRVU1zVlVGQlZTeERRVUZETEVsQlFVa3NXVUZCV1N4RFFVRkRMRkZCUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zUlVGQlJTeERRVUZETzFsQlEycElMRTlCUVU4c1NVRkJTU3hoUVVGaExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdVVUZEY0VNc1EwRkJRenRSUVVWRUxFbEJRVWtzV1VGQldTeERRVUZETEZGQlFWRXNRMEZCUXl4VFFVRlRMRU5CUVVNc1NVRkJTU3haUVVGWkxFTkJRVU1zVVVGQlVTeERRVUZETEdGQlFXRXNRMEZCUXl4SlFVRkpMRmxCUVZrc1EwRkJReXhSUVVGUkxFTkJRVU1zUzBGQlN5eERRVUZETEVWQlFVVXNRMEZCUXp0WlFVTTNSeXhQUVVGUExFbEJRVWtzWlVGQlpTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUTNSRExFTkJRVU03VVVGRlJDeEpRVUZKTEZsQlFWa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1kwRkJZeXhEUVVGRExFbEJRVWtzV1VGQldTeERRVUZETEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkJSU3hEUVVGRE8xbEJRekZGTEU5QlFVOHNTVUZCU1N4aFFVRmhMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRGNFTXNRMEZCUXp0UlFVVkVMRWxCUVVrc1dVRkJXU3hEUVVGRExGRkJRVkVzUTBGQlF5eFhRVUZYTEVOQlFVTXNTVUZCU1N4WlFVRlpMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eEZRVUZGTEVOQlFVTTdXVUZEZGtVc1QwRkJUeXhKUVVGSkxHRkJRV0VzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTndReXhEUVVGRE8xRkJSVVFzVDBGQlR5eEpRVUZKTEdGQlFXRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRKUVVOd1F5eERRVUZETzBsQlJVOHNaMEpCUVdkQ0xFTkJRVU1zVFVGQmVVSTdVVUZEYUVRc1QwRkJUeXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETzFsQlEyeENMRTlCUVU4c1JVRkJSU3hIUVVGSExFMUJRVTBzUTBGQlF5eFJRVUZSTEUxQlFVMHNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSVHRaUVVNNVF5eGpRVUZqTEVWQlFVVXNSMEZCUnl4RlFVRkZMRU5CUVVNc1NVRkJTVHRaUVVNeFFpeFZRVUZWTEVWQlFVVXNTVUZCU1N4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRE8yZENRVU14UWl4clFrRkJhMElzUlVGQlJTeERRVUZETEhsQ1FVRjVRaXhEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZoTEVOQlFVTXNRMEZCUXp0aFFVTndSU3hEUVVGRE8xTkJRMGdzUTBGQlF5eERRVUZETzBsQlEwd3NRMEZCUXp0SlFVVlBMRXRCUVVzc1EwRkJReXhQUVVGUExFTkJRMjVDTEUxQlFYbERMRVZCUTNwRExFZEJRVmNzUlVGRFdDeFBRVUZuUWl4RlFVTm9RaXhQUVVFclFpeEZRVU12UWl4TFFVRXdRaXhGUVVNeFFpeFhRVUZ0UWl4RlFVTnVRaXhIUVVGSExFbEJRWGxDTzFGQlJUVkNMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVOb1F5eFBRVUZQTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRE8xbEJRM3BDTEUxQlFVMDdXVUZEVGl4SFFVRkhPMWxCUTBnc1NVRkJTU3hGUVVOR0xFOUJRVThzUzBGQlN5eFRRVUZUTzJkQ1FVTnVRaXhEUVVGRExFTkJRVU1zVTBGQlV6dG5Ra0ZEV0N4RFFVRkRMRU5CUVVNc1QwRkJUeXhQUVVGUExFdEJRVXNzVVVGQlVUdHZRa0ZETTBJc1EwRkJReXhEUVVGRExFOUJRVTg3YjBKQlExUXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zVDBGQlR5eERRVUZETzFsQlF5OUNMRWxCUVVrc1JVRkJSU3hQUVVGUE8yZENRVU5ZTEVOQlFVTXNRMEZCUXl4RlFVRkZMRkZCUVZFc1JVRkJSU3hQUVVGUExFTkJRVU1zVVVGQlVTeEZRVUZGTEZGQlFWRXNSVUZCUlN4UFFVRlBMRU5CUVVNc1VVRkJVU3hGUVVGRk8yZENRVU0xUkN4RFFVRkRMRU5CUVVNc1UwRkJVenRaUVVOaUxHTkJRV01zUlVGQlJTeEhRVUZITEVWQlFVVXNRMEZCUXl4SlFVRkpPMWxCUXpGQ0xGVkJRVlVzUlVGQlJTeEpRVUZKTEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNN1owSkJRekZDTEd0Q1FVRnJRaXhGUVVGRkxFTkJRVU1zZVVKQlFYbENMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRV0VzUTBGQlF5eERRVUZETzJGQlEzQkZMRU5CUVVNN1dVRkRSaXhIUVVGSExFdEJRVXM3VTBGRFZDeERRVUZETEVOQlFVTTdTVUZEVEN4RFFVRkRPME5CUTBZaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ2UxeHVJQ0JDWVdSU1pYRjFaWE4wUlhKeWIzSXNYRzRnSUVOdmJtWnNhV04wUlhKeWIzSXNYRzRnSUVsdWRHVnlibUZzUlhKeWIzSXNYRzRnSUU1dmRFWnZkVzVrUlhKeWIzSXNYRzU5SUdaeWIyMGdYQ0pBWkdWallXWXRkSE12WkdJdFpHVmpiM0poZEc5eWMxd2lPMXh1YVcxd2IzSjBJSHNnUTI5dWRHVjRkSFZoYkVGeVozTXNJRTFoZVdKbFEyOXVkR1Y0ZEhWaGJFRnlaeUI5SUdaeWIyMGdYQ0pBWkdWallXWXRkSE12WTI5eVpWd2lPMXh1YVcxd2IzSjBJSHNnUTJ4cFpXNTBRbUZ6WldSVFpYSjJhV05sSUgwZ1puSnZiU0JjSWtCa1pXTmhaaTEwY3k5amIzSmxYQ0k3WEc1cGJYQnZjblFnZEhsd1pTQjdJRXRwWW1GdVlWTmxkSFZ3UTI5dVptbG5MQ0JMYVdKaGJtRlZjMlZ5SUgwZ1puSnZiU0JjSWk0dUwzUjVjR1Z6WENJN1hHNXBiWEJ2Y25RZ1FYaHBiM01zSUhzZ1FYaHBiM05KYm5OMFlXNWpaU0I5SUdaeWIyMGdYQ0poZUdsdmMxd2lPMXh1YVcxd2IzSjBJQ29nWVhNZ2FIUjBjSE1nWm5KdmJTQmNJbTV2WkdVNmFIUjBjSE5jSWp0Y2JtbHRjRzl5ZENCN0lISmxjMjlzZG1WTGFXSmhibUZKYzFCeWIyUjFZM1JwYjI0Z2ZTQm1jbTl0SUZ3aUxpOXlkVzUwYVcxbFhDSTdYRzVjYm1WNGNHOXlkQ0JqYkdGemN5QkxhV0poYm1GQmRYUm9VMlZ5ZG1salpTQmxlSFJsYm1SeklFTnNhV1Z1ZEVKaGMyVmtVMlZ5ZG1salpUeGNiaUFnUVhocGIzTkpibk4wWVc1alpTeGNiaUFnUzJsaVlXNWhVMlYwZFhCRGIyNW1hV2RjYmo0Z2UxeHVJQ0JoYzNsdVl5QnBibWwwYVdGc2FYcGxLRnh1SUNBZ0lDNHVMbUZ5WjNNNklFMWhlV0psUTI5dWRHVjRkSFZoYkVGeVp6eGhibmsrWEc0Z0lDazZJRkJ5YjIxcGMyVThleUJqYjI1bWFXYzZJRXRwWW1GdVlWTmxkSFZ3UTI5dVptbG5PeUJqYkdsbGJuUTZJRUY0YVc5elNXNXpkR0Z1WTJVZ2ZUNGdlMXh1SUNBZ0lHTnZibk4wSUhzZ1kzUjRRWEpuY3lCOUlEMGdLRnh1SUNBZ0lDQWdZWGRoYVhRZ2RHaHBjeTVzYjJkRGRIZ29ZWEpuY3l3Z1hDSnBibWwwYVdGc2FYcGxYQ0lzSUhSeWRXVXBYRzRnSUNBZ0tTNW1iM0lvZEdocGN5NXBibWwwYVdGc2FYcGxLVHRjYmlBZ0lDQmpiMjV6ZENCamIyNW1hV2NnUFNCamRIaEJjbWR6V3pCZElHRnpJRXRwWW1GdVlWTmxkSFZ3UTI5dVptbG5PMXh1SUNBZ0lIUm9hWE11WDJOdmJtWnBaeUE5SUdOdmJtWnBaenRjYmlBZ0lDQmpiMjV6ZENCamJHbGxiblFnUFNCMGFHbHpMbU55WldGMFpVaDBkSEJEYkdsbGJuUW9ZMjl1Wm1sbktUdGNiaUFnSUNCMGFHbHpMbDlqYkdsbGJuUWdQU0JqYkdsbGJuUTdYRzRnSUNBZ2NtVjBkWEp1SUhzZ1kyOXVabWxuTENCamJHbGxiblFnZlR0Y2JpQWdmVnh1WEc0Z0lHRnplVzVqSUd4dloybHVWRzlMYVdKaGJtRW9YRzRnSUNBZ2RYTmxjbTVoYldVNklITjBjbWx1WnlCOElIVnVaR1ZtYVc1bFpDeGNiaUFnSUNCd1lYTnpkMjl5WkRvZ2MzUnlhVzVuSUh3Z2RXNWtaV1pwYm1Wa0xGeHVJQ0FnSUM0dUxtRnlaM002SUUxaGVXSmxRMjl1ZEdWNGRIVmhiRUZ5Wnp4aGJuaytYRzRnSUNrNklGQnliMjFwYzJVOGMzUnlhVzVuVzEwZ2ZDQjFibVJsWm1sdVpXUStJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHTjBlRUZ5WjNNZ2ZTQTlJQ2hjYmlBZ0lDQWdJR0YzWVdsMElIUm9hWE11Ykc5blEzUjRLR0Z5WjNNc0lGd2liRzluYVc1VWIwdHBZbUZ1WVZ3aUxDQjBjblZsS1Z4dUlDQWdJQ2t1Wm05eUtIUm9hWE11Ykc5bmFXNVViMHRwWW1GdVlTazdYRzRnSUNBZ1kyOXVjM1FnWTI5dVptbG5JRDBnZEdocGN5NWpiMjVtYVdjN1hHNGdJQ0FnWTI5dWMzUWdZM0psWkdWdWRHbGhiSE1nUFNCN1hHNGdJQ0FnSUNCMWMyVnlibUZ0WlRvZ2RYTmxjbTVoYldVZ1B6OGdZMjl1Wm1sbkxtRmtiV2x1UVhCcFZYTmxjajh1ZFhObGNtNWhiV1VzWEc0Z0lDQWdJQ0J3WVhOemQyOXlaRG9nY0dGemMzZHZjbVFnUHo4Z1kyOXVabWxuTG1Ga2JXbHVRWEJwVlhObGNqOHVjR0Z6YzNkdmNtUXNYRzRnSUNBZ2ZUdGNiaUFnSUNCcFppQW9JV055WldSbGJuUnBZV3h6TG5WelpYSnVZVzFsSUh4OElDRmpjbVZrWlc1MGFXRnNjeTV3WVhOemQyOXlaQ2tnZTF4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVKaFpGSmxjWFZsYzNSRmNuSnZjaWhjSWt0cFltRnVZU0JzYjJkcGJpQnlaWEYxYVhKbGN5QmpjbVZrWlc1MGFXRnNjMXdpS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JqYjI1emRDQnlaWE53YjI1elpTQTlJR0YzWVdsMElIUm9hWE11Y21WeGRXVnpkQ2hjYmlBZ0lDQWdJRndpVUU5VFZGd2lMRnh1SUNBZ0lDQWdZQ1I3WTI5dVptbG5MbkJ5YjNSdlkyOXNmVG92THlSN1kyOXVabWxuTG1odmMzUjlMMmx1ZEdWeWJtRnNMM05sWTNWeWFYUjVMMnh2WjJsdVlDeGNiaUFnSUNBZ0lIdGNiaUFnSUNBZ0lDQWdjSEp2ZG1sa1pYSlVlWEJsT2lCY0ltSmhjMmxqWENJc1hHNGdJQ0FnSUNBZ0lIQnliM1pwWkdWeVRtRnRaVG9nWENKaVlYTnBZMXdpTEZ4dUlDQWdJQ0FnSUNCamRYSnlaVzUwVlZKTU9pQmNJaTlzYjJkcGJsd2lMRnh1SUNBZ0lDQWdmU3hjYmlBZ0lDQWdJSFZ1WkdWbWFXNWxaQ3hjYmlBZ0lDQWdJSHRjYmlBZ0lDQWdJQ0FnWVhWMGFEb2dZM0psWkdWdWRHbGhiSE1zWEc0Z0lDQWdJQ0FnSUdobFlXUmxjbk02SUh0Y2JpQWdJQ0FnSUNBZ0lDQmNJbXRpYmkxNGMzSm1YQ0k2SUZ3aWRISjFaVndpTEZ4dUlDQWdJQ0FnSUNBZ0lGd2lZMjl1ZEdWdWRDMTBlWEJsWENJNklGd2lZWEJ3YkdsallYUnBiMjR2YW5OdmJsd2lMRnh1SUNBZ0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnSUNCM2FYUm9RM0psWkdWdWRHbGhiSE02SUhSeWRXVXNYRzRnSUNBZ0lDQWdJR2gwZEhCelFXZGxiblE2SUc1bGR5Qm9kSFJ3Y3k1QloyVnVkQ2g3WEc0Z0lDQWdJQ0FnSUNBZ2NtVnFaV04wVlc1aGRYUm9iM0pwZW1Wa09pQW9jbVZ6YjJ4MlpVdHBZbUZ1WVVselVISnZaSFZqZEdsdmJpaDBhR2x6TG1OdmJtWnBaeUJoY3lCaGJua3BLU3hjYmlBZ0lDQWdJQ0FnZlNrc1hHNGdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ01qQXdMRnh1SUNBZ0lDQWdMaTR1WTNSNFFYSm5jMXh1SUNBZ0lDazdYRzVjYmlBZ0lDQnBaaUFvY21WemNHOXVjMlV1YzNSaGRIVnpJRDQ5SURNd01Da2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ2JXVnpjMkZuWlNBOUlHQkxhV0poYm1FZ2JHOW5hVzRnWm1GcGJHVmtPaUFrZTNKbGMzQnZibk5sTG5OMFlYUjFjMVJsZUhSOVlEdGNiaUFnSUNBZ0lIUm9jbTkzSUc1bGR5QkNZV1JTWlhGMVpYTjBSWEp5YjNJb2JXVnpjMkZuWlNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnWTI5dWMzUWdjMlYwUTI5dmEybGxJRDBnY21WemNHOXVjMlV1YUdWaFpHVnljMXRjSW5ObGRDMWpiMjlyYVdWY0lsMGdZWE1nYzNSeWFXNW5XMTBnZkNCMWJtUmxabWx1WldRN1hHNGdJQ0FnYVdZZ0tDRnpaWFJEYjI5cmFXVS9MbXhsYm1kMGFDa2djbVYwZFhKdUlIVnVaR1ZtYVc1bFpEdGNiaUFnSUNCeVpYUjFjbTRnYzJWMFEyOXZhMmxsTzF4dUlDQjlYRzVjYmlBZ1lYTjVibU1nYkc5bmIzVjBLRnh1SUNBZ0lIVnpaWEk2SUV0cFltRnVZVlZ6WlhJc1hHNGdJQ0FnTGk0dVlYSm5jem9nVFdGNVltVkRiMjUwWlhoMGRXRnNRWEpuUEdGdWVUNWNiaUFnS1RvZ1VISnZiV2x6WlR4MmIybGtQaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QmpkSGhCY21keklIMGdQU0FvWEc0Z0lDQWdJQ0JoZDJGcGRDQjBhR2x6TG14dlowTjBlQ2hoY21kekxDQmNJbXh2WjI5MWRGd2lMQ0IwY25WbEtWeHVJQ0FnSUNrdVptOXlLSFJvYVhNdWJHOW5iM1YwS1R0Y2JpQWdJQ0JoZDJGcGRDQjBhR2x6TG5KbGNYVmxjM1FvWEc0Z0lDQWdJQ0JjSWxCUFUxUmNJaXhjYmlBZ0lDQWdJR0FrZTNSb2FYTXVZMjl1Wm1sbkxuQnliM1J2WTI5c2ZUb3ZMeVI3ZEdocGN5NWpiMjVtYVdjdWFHOXpkSDB2Ykc5bmIzVjBZQ3hjYmlBZ0lDQWdJSFZ1WkdWbWFXNWxaQ3hjYmlBZ0lDQWdJSFZ6WlhJc1hHNGdJQ0FnSUNCN1hHNGdJQ0FnSUNBZ0lHaGxZV1JsY25NNklIc2dYQ0pyWW00dGVITnlabHdpT2lCY0luUnlkV1ZjSWlCOUxGeHVJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lESXdNQ3hjYmlBZ0lDQWdJQzR1TG1OMGVFRnlaM05jYmlBZ0lDQXBPMXh1SUNCOVhHNWNiaUFnY0hKdmRHVmpkR1ZrSUhCaGNuTmxSWEp5YjNJb1pYSnliM0k2SUVWeWNtOXlLVG9nUlhKeWIzSWdlMXh1SUNBZ0lHTnZibk4wSUcxbGMzTmhaMlVnUFNCbGNuSnZjaTV0WlhOellXZGxJSHg4SUdWeWNtOXlMbTVoYldVZ2ZId2dYQ0pWYm10dWIzZHVJR1Z5Y205eVhDSTdYRzRnSUNBZ1kyOXVjM1FnYkc5M1pYSk5aWE56WVdkbElEMGdiV1Z6YzJGblpTNTBiMHh2ZDJWeVEyRnpaU2dwTzF4dVhHNGdJQ0FnYVdZZ0tHeHZkMlZ5VFdWemMyRm5aUzVwYm1Oc2RXUmxjeWhjSW01dmRDQm1iM1Z1WkZ3aUtTQjhmQ0JzYjNkbGNrMWxjM05oWjJVdWFXNWpiSFZrWlhNb1hDSTBNRFJjSWlrcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCdVpYY2dUbTkwUm05MWJtUkZjbkp2Y2lodFpYTnpZV2RsS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JwWmlBb2JHOTNaWEpOWlhOellXZGxMbWx1WTJ4MVpHVnpLRndpWVd4eVpXRmtlU0JsZUdsemRITmNJaWtnZkh3Z2JHOTNaWEpOWlhOellXZGxMbWx1WTJ4MVpHVnpLRndpWTI5dVpteHBZM1JjSWlrZ2ZId2diRzkzWlhKTlpYTnpZV2RsTG1sdVkyeDFaR1Z6S0Z3aU5EQTVYQ0lwS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnYm1WM0lFTnZibVpzYVdOMFJYSnliM0lvYldWemMyRm5aU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdhV1lnS0d4dmQyVnlUV1Z6YzJGblpTNXBibU5zZFdSbGN5aGNJbWx1ZG1Gc2FXUmNJaWtnZkh3Z2JHOTNaWEpOWlhOellXZGxMbWx1WTJ4MVpHVnpLRndpWW1Ga0lISmxjWFZsYzNSY0lpa2dmSHdnYkc5M1pYSk5aWE56WVdkbExtbHVZMngxWkdWektGd2lOREF3WENJcEtTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2JtVjNJRUpoWkZKbGNYVmxjM1JGY25KdmNpaHRaWE56WVdkbEtUdGNiaUFnSUNCOVhHNWNiaUFnSUNCcFppQW9iRzkzWlhKTlpYTnpZV2RsTG1sdVkyeDFaR1Z6S0Z3aWRXNWhkWFJvYjNKcGVtVmtYQ0lwSUh4OElHeHZkMlZ5VFdWemMyRm5aUzVwYm1Oc2RXUmxjeWhjSWpRd01Wd2lLU2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJRzVsZHlCT2IzUkdiM1Z1WkVWeWNtOXlLRzFsYzNOaFoyVXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHbG1JQ2hzYjNkbGNrMWxjM05oWjJVdWFXNWpiSFZrWlhNb1hDSm1iM0ppYVdSa1pXNWNJaWtnZkh3Z2JHOTNaWEpOWlhOellXZGxMbWx1WTJ4MVpHVnpLRndpTkRBelhDSXBLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdibVYzSUU1dmRFWnZkVzVrUlhKeWIzSW9iV1Z6YzJGblpTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NtVjBkWEp1SUc1bGR5QkpiblJsY201aGJFVnljbTl5S0cxbGMzTmhaMlVwTzF4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCamNtVmhkR1ZJZEhSd1EyeHBaVzUwS0dOdmJtWnBaem9nUzJsaVlXNWhVMlYwZFhCRGIyNW1hV2NwT2lCQmVHbHZjMGx1YzNSaGJtTmxJSHRjYmlBZ0lDQnlaWFIxY200Z1FYaHBiM011WTNKbFlYUmxLSHRjYmlBZ0lDQWdJR0poYzJWVlVrdzZJR0FrZTJOdmJtWnBaeTV3Y205MGIyTnZiSDA2THk4a2UyTnZibVpwWnk1b2IzTjBmV0FzWEc0Z0lDQWdJQ0IyWVd4cFpHRjBaVk4wWVhSMWN6b2dLQ2tnUFQ0Z2RISjFaU3hjYmlBZ0lDQWdJR2gwZEhCelFXZGxiblE2SUc1bGR5Qm9kSFJ3Y3k1QloyVnVkQ2g3WEc0Z0lDQWdJQ0FnSUhKbGFtVmpkRlZ1WVhWMGFHOXlhWHBsWkRvZ0tISmxjMjlzZG1WTGFXSmhibUZKYzFCeWIyUjFZM1JwYjI0b2RHaHBjeTVqYjI1bWFXY2dZWE1nWVc1NUtTa3NYRzRnSUNBZ0lDQjlLU3hjYmlBZ0lDQjlLVHRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnWVhONWJtTWdjbVZ4ZFdWemRDaGNiaUFnSUNCdFpYUm9iMlE2SUZ3aVIwVlVYQ0lnZkNCY0lsQlBVMVJjSWlCOElGd2lVRlZVWENJZ2ZDQmNJa1JGVEVWVVJWd2lMRnh1SUNBZ0lIVnliRG9nYzNSeWFXNW5MRnh1SUNBZ0lIQmhlV3h2WVdRNklIVnVhMjV2ZDI0c1hHNGdJQ0FnWVhCcFZYTmxjam9nUzJsaVlXNWhWWE5sY2lCOElIVnVaR1ZtYVc1bFpDeGNiaUFnSUNCbGVIUnlZVG9nVW1WamIzSmtQSE4wY21sdVp5d2dZVzU1UGl4Y2JpQWdJQ0J6ZFdOalpYTnpRMjlrWlRvZ2JuVnRZbVZ5TEZ4dUlDQWdJQzR1TG1GeVozTTZJRU52Ym5SbGVIUjFZV3hCY21kelBHRnVlVDVjYmlBZ0tUb2dVSEp2YldselpUeGhibmsrSUh0Y2JpQWdJQ0IwYUdsekxteHZaME4wZUNoaGNtZHpMQ0IwYUdsekxuSmxjWFZsYzNRcE8xeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtTnNhV1Z1ZEM1eVpYRjFaWE4wS0h0Y2JpQWdJQ0FnSUcxbGRHaHZaQ3hjYmlBZ0lDQWdJSFZ5YkN4Y2JpQWdJQ0FnSUdSaGRHRTZYRzRnSUNBZ0lDQWdJSEJoZVd4dllXUWdQVDA5SUhWdVpHVm1hVzVsWkZ4dUlDQWdJQ0FnSUNBZ0lEOGdkVzVrWldacGJtVmtYRzRnSUNBZ0lDQWdJQ0FnT2lCMGVYQmxiMllnY0dGNWJHOWhaQ0E5UFQwZ1hDSnpkSEpwYm1kY0lseHVJQ0FnSUNBZ0lDQWdJQ0FnUHlCd1lYbHNiMkZrWEc0Z0lDQWdJQ0FnSUNBZ0lDQTZJRXBUVDA0dWMzUnlhVzVuYVdaNUtIQmhlV3h2WVdRcExGeHVJQ0FnSUNBZ1lYVjBhRG9nWVhCcFZYTmxjbHh1SUNBZ0lDQWdJQ0EvSUhzZ2RYTmxjbTVoYldVNklHRndhVlZ6WlhJdWRYTmxjbTVoYldVc0lIQmhjM04zYjNKa09pQmhjR2xWYzJWeUxuQmhjM04zYjNKa0lIMWNiaUFnSUNBZ0lDQWdPaUIxYm1SbFptbHVaV1FzWEc0Z0lDQWdJQ0IyWVd4cFpHRjBaVk4wWVhSMWN6b2dLQ2tnUFQ0Z2RISjFaU3hjYmlBZ0lDQWdJR2gwZEhCelFXZGxiblE2SUc1bGR5Qm9kSFJ3Y3k1QloyVnVkQ2g3WEc0Z0lDQWdJQ0FnSUhKbGFtVmpkRlZ1WVhWMGFHOXlhWHBsWkRvZ0tISmxjMjlzZG1WTGFXSmhibUZKYzFCeWIyUjFZM1JwYjI0b2RHaHBjeTVqYjI1bWFXY2dZWE1nWVc1NUtTa3NYRzRnSUNBZ0lDQjlLU3hjYmlBZ0lDQWdJQzR1TG1WNGRISmhMRnh1SUNBZ0lIMHBPMXh1SUNCOVhHNTlYRzRpWFgwPSJdfQ==
|